我有一个Combobox,我希望它的项目是位于DataGrid上的列数据。无论如何将Combobox项目源设置为DataGrid的特定列?
现在我正在迭代DataGrid的每一行,获取字段的数据并将它们添加到Combobox,但这意味着我必须清除所有项目并在每次修改DataGrid时重申。
答案 0 :(得分:2)
您可以设置ItemsSource和DisplayMemberPath属性:
comboBox1.ItemsSource = dataGrid1.ItemsSource;
comboBox1.DisplayMemberPath = "ColumnName";
答案 1 :(得分:0)
我认为你采取了错误的做法。您的数据网格必须绑定到对象集合。我想你可以通过提取所需的字段(例如使用linQ)来构建另一个集合,并将这个新集合公开给你的视图,以便你可以绑定你的组合框。
我想让第二个集合更新,让你的第一个主集合成为ObservableCollection,这样你就可以订阅CollectionChanged事件。在事件处理程序中,只需管理组合框源代码集中的添加和删除。