WPF`ComboBox` ItemsSource属性被更改,SelectedItem属性被设置为null

时间:2015-08-03 18:15:09

标签: c# wpf combobox

正在发生的问题是每当更改WPF ComboBox ItemsSource属性时,SelectedItem属性都将设置为null。

重新创建问题的要求:

  1. Original ItemsSource是一组非值的对象 类型
  2. SelectedValue绑定到某个属性
  3. 已设置SelectedValuePath
  4. SelectedItem是原始ItemsSource
  5. 中的一些项目
  6. New ItemsSource是与...相同类型的对象的集合 原始
  7. 不包含对同一对象的引用的ItemsSource 内存作为当前的SelectedItem
  8. 其实我想在Datagrid模板中绑定Combobox,在视图模型中存在Combobox集合,当我更改第一列属性时,其他行组合框项目变为空。

    我该如何解决这个问题?

1 个答案:

答案 0 :(得分:3)

SelectedItem对象必须位于ItemsSource集合中。

如果要从新的ItemsSource集合中分配新的SelectedItem,该集合与先前SelectedItem上的属性匹配,则在更改ItemsSource之前保存属性值并找到匹配的项目。

var id = ((MyType)MyCombo.SelectedItem).Id;

MyCombo.ItemsSource = MyNewList;

MyCombo.SelectedItem = MyNewList.FirstOrDefault(x => x.Id == id);