使用不同类型绑定DataGrid中ComboBox的SelectedItem

时间:2013-05-22 16:33:35

标签: wpf binding datagrid combobox datagridcomboboxcolumn

我有一个包含ComboBox作为列的DataGrid。

让DataGrid将ItemsSource视为ObservableCollection,将ComboBox ItemsSource视为List。

我想根据DataGrid ItemsSource中的属性设置ComboBox SelectedItem属性。

但是Product类的属性ProductTypeId类型为int而不是ProductType。

那么我该如何设置ComboBox SelectedItem,使其显示Product.ProductTypeId的值为选中状态。 而且我想将SeletedItems与Mode = TwoWay绑定,这样每当ComboBox SelectedItem发生变化时,它都会反映在DataGrid的ItemsSource中。

非常感谢任何帮助。

感谢。

1 个答案:

答案 0 :(得分:6)

DataGridComboBoxColumn完全符合您的要求。要正确使用它,您需要了解以下属性:

  • SelectedValueBinding - 这是对象/ viewmodel
  • 上属性的绑定
  • SelectedValuePath - 这是ComboBox内项目的值属性。当用户从SelectedValueBinding中选择一个项目时,这将分配给您在ComboBox中设置的媒体资源。
  • DisplayMemberPath - 这是ComboBox
  • 内项目的说明属性

设置ItemsSource的{​​{1}}略有不同;请注意下面的示例,了解它是如何完成的。

这些与标准DataGridComboBoxColumn上的相同(SelectedValueBinding除外)。

以下是列的外观示例。

ComboBox