0

这是我的用户控件中的组合框:

<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.DataContext”或其他包含您定义的 ItemSource 属性的类对象实例,而不是“this”。

试试这个,

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 回答