我在窗口/ userControl中有几个组合框。我从父设置ItemsSource,但只指定组合框的名称。 由于我不想为每个人做这件事(因为我无法重复组合框名称),我如何在这个userControl中为所有项目(本例中为Combobox)实现这个?
在后面的UserControl代码中
iterrows()
在mainWindow CS中
public object multiSwitchListDataContext {
get { return multiSwitchCombobox.DataContext; }
set
{
multiSwitchCombobox.DataContext = value;
multiSwitchCombobox.ItemsSource = value;
NotifyPropertyChanged();
}
}
public event PropertyChangedEventHandler PropertyChanged;
在userControl xaml
中 (myUserControl).multiSwitchListDataContext = multiSwitchList;
答案 0 :(得分:0)
我无法为您当前的问题提供完整的答案,因为没有足够的信息/代码来提供,但以下示例应该有助于您对其进行排序。
MainWindow.xaml
<ComboBox ItemsSource="{Binding MyList}"/>
MainWindow.xaml.cs
public MainWindow()
{
InitializeComponent();
// Very important to get the binding working.
this.DataContext = this;
}
// The property to bind to, you should choose a better type than object.
public IList<object> MyList
{
get { return (IList<object>)GetValue(MyListProperty); }
set { SetValue(MyListProperty, value); }
}
public static readonly DependencyProperty MyListProperty =
DependencyProperty.Register("MyList", typeof(IList<object>), typeof(MainWindow), new PropertyMetadata(null));
然后,您应该通过在代码中设置MyList属性来查找它将使用MyList中的值填充ComboBox
。