我有一个下拉框,希望其中的选项是位于数据网格上的列数据。有没有办法将下拉框的项目源设置为数据网格的特定列?
目前,我正在迭代数据网格的每一行,获取字段数据并将其添加到下拉框中,但这意味着我必须清除所有项目并在每次修改数据网格时重新迭代。
comboBox1.ItemsSource = dataGrid1.ItemsSource;
comboBox1.DisplayMemberPath = "ColumnName";
我认为你的方法不太对。你的数据网格必须绑定到一个对象集合上。我猜你可以通过提取所需字段(例如使用linQ)来构建另一个集合,并将这个新集合公开给你的视图,以便你可以绑定你的组合框。
如果你想保持这个第二个集合更新,让你的第一个主要集合成为ObservableCollection,这样你就可以订阅CollectionChanged事件。在事件处理程序中,只需管理组合框源集合中的添加和删除即可。