将WPF Datagrid列设置为Combobox项目源

时间:2011-05-25 05:37:30

标签: c# wpf datagrid combobox

我有一个Combobox,我希望它的项目是位于DataGrid上的列数据。无论如何将Combobox项目源设置为DataGrid的特定列?

现在我正在迭代DataGrid的每一行,获取字段的数据并将它们添加到Combobox,但这意味着我必须清除所有项目并在每次修改DataGrid时重申。

2 个答案:

答案 0 :(得分:2)

您可以设置ItemsSource和DisplayMemberPath属性:

        comboBox1.ItemsSource = dataGrid1.ItemsSource;
        comboBox1.DisplayMemberPath = "ColumnName";

答案 1 :(得分:0)

我认为你采取了错误的做法。您的数据网格必须绑定到对象集合。我想你可以通过提取所需的字段(例如使用linQ)来构建另一个集合,并将这个新集合公开给你的视图,以便你可以绑定你的组合框。

我想让第二个集合更新,让你的第一个主集合成为ObservableCollection,这样你就可以订阅CollectionChanged事件。在事件处理程序中,只需管理组合框源代码集中的添加和删除。