2

私はバインディングを理解しようとしているので、それをテストするための非常に簡単なプログラムを考え出しました。

メインウィンドウに次の要素があります。

<ComboBox Name="comboBox1" ItemsSource="{Binding}" />

私のコードには、次の観察可能なコレクションがあります。

public ObservableCollection<string> ComboItems = new ObservableCollection<string>();

実行時の任意の時点で、この方法でアイテムを正常に追加できます。

comboBox1.DataContext = ComboItems;
ComboItems.Clea();
ComboItems.Add("Item");

私の質問は、コードで行う必要がないように、XAMLでDataContextを設定するにはどうすればよいですか?出来ますか?

ありがとうございました!

4

1 に答える 1

4

一般的なものは次のとおりです。

<Window DataContext="{Binding RelativeSource={RelativeSource Self}}">
    <ComboBox ItemsSource="{Binding ComboItems}" .../>

ただし、通常は別のオブジェクトインスタンスをとして挿入する必要DataContextがあります。たとえば、MVVMパターンを見てください。WPFのプロパティは継承されるため、はのをComboBox持っていますDataContextWindow、どのレベルでも上書きできます。

注:バインディングが機能ComboItemsするには、フィールドではなくパブリックプロパティである必要があります。

関心のあるリソース:

于 2012-08-30T15:56:34.193 に答える