WPFでビジュアルフォームデザイナを実装しようとしています。ユーザーがいくつかのコントロール(テキストボックス、テキストブロック、コンボボックス、チェックボックス、画像、ボタン)をドラッグアンドドロップできるキャンバスがあります。ここまでは順調ですね。今、私は、ユーザーがキャンバスに配置したすべてのコントロールを一覧表示するコンボボックスを実装しようとしています(VS 2008のように)。
コンボボックスには、コントロールのNameプロパティが表示されます。ボタンとチェックボックスを除くすべてのコントロールでうまく機能し、その理由がわかりません。コンボボックスはObservableCollectionにバインドされており、コンボボックスのアイテムコレクションは正しく入力されていますが、ボタンまたはチェックボックスを選択すると、名前がSelectedItemとして表示されません。これが私のバインディングです:
<ComboBox Name="comboBoxCurrentControls" IsEditable="false"
ItemsSource="{Binding AllFormControls}" DisplayMemberPath="Name"
SelectedValuePath="Name"
SelectedItem="{Binding Path=SelectedCtl, Mode=TwoWay}"
ObservableCollection<T>
コードビハインドにボタンを入力し、コンボボックスをバインドするだけで、問題を再現できます。コンボボックスは、ボタンを選択したときに、ボタンの名前をSelectedItemとして表示しません。誰かが私にこの振る舞いを説明したり、これの回避策を教えてもらえますか?
前もって感謝します
クリス
追伸:私も使おうとしましObservableCollection<FrameworkElement>
たが、役に立ちませんでした。