0

これが私のUserControlのコンボボックスです:

<Combobox ItemsSource="{Binding ComboItemsProperty}" />

私が試してみました:

Binding bind = new Binding();
bind.Mode = BindingMode.OneWay;
bind.Source = this;
bind.Path = new PropertyPath("ComboItemsProperty");
this.SetBinding(ComboBox.ItemsSourceProperty, bind);

ただし、これは機能しません。bind.Sourceを間違って実行していると思いますが、Sourceを何に設定すればよいかわかりません。このコードは私のUserControl.xaml.cs内にあります。

4

3 に答える 3

0

あなたは試すことができます(これを置き換えてください)

Binding bind = new Binding();
bind.Mode = BindingMode.OneWay;
bind.Source = yourCollectionSourceOrClass; //<--Replace with your collection
bind.Path = new PropertyPath("ComboItemsProperty");
this.SetBinding(ComboBox.ItemsSourceProperty, bind);
于 2012-09-06T18:29:30.763 に答える
0

プロパティComboItemsPropertyを含むインスタンスのコンテキストを設定する必要があります。したがって、「this」の代わりに、「this.DataContext」または定義した ItemSource プロパティを含む他のクラス オブジェクト インスタンスに設定する必要があります。

これを試して、

Binding bind = new Binding();  
bind.Mode = BindingMode.OneWay;  
bind.Source = this.DataContext;  
bind.Path = new PropertyPath("ComboItemsProperty");  
this.SetBinding( ComboBox. ItemsSource Property, bind);  

(携帯から投稿)

于 2012-09-06T18:29:31.880 に答える
0

これを行うために多くの方法を試しましたが、何もうまくいかないようです。

代わりに、.xaml ファイルが保存されるときにバインディングをシリアル化します。これは完璧に機能しているようです。バインディングをコードで設定する必要がなくなります。

于 2012-09-07T15:54:45.667 に答える