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

本文关键字:属性 SelectedItem null 设置 ComboBox ItemsSource WPF | 更新日期: 2023-09-27 18:06:04

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

重新创建问题的要求:

  1. Original ItemsSource是一个NOT value对象的集合
  2. SelectedValue被绑定到某个属性
  3. 设置SelectedValuePath
  4. SelectedItem是原始ItemsSource
  5. 中的某个项目
  6. New ItemsSource是与对象相同类型的对象集合原
  7. ItemsSource中不包含对相同对象的引用内存作为当前SelectedItem

实际上我想在Datagrid模板中绑定组合框,组合框集合存在于视图模型中,当我改变第一列属性时,其他行组合框项变为空。

如何解决这个问题?

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

SelectedItem对象必须在ItemsSource集合内。

如果你想从新的ItemsSource集合中分配一个新的SelectedItem,它与之前的SelectedItem的属性相匹配,那么在更改ItemsSource并找到匹配的项之前保存属性值。

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