WPF ' ComboBox ' ItemsSource属性被更改,SelectedItem属性被设置为null
本文关键字:属性 SelectedItem null 设置 ComboBox ItemsSource WPF | 更新日期: 2023-09-27 18:06:04
发生的问题是,每当WPF ComboBox
ItemsSource属性被更改时,SelectedItem属性被设置为null。
重新创建问题的要求:
- Original ItemsSource是一个NOT value对象的集合
- SelectedValue被绑定到某个属性
- 设置SelectedValuePath
- SelectedItem是原始ItemsSource 中的某个项目
- New ItemsSource是与对象相同类型的对象集合原
- ItemsSource中不包含对相同对象的引用内存作为当前SelectedItem
实际上我想在Datagrid模板中绑定组合框,组合框集合存在于视图模型中,当我改变第一列属性时,其他行组合框项变为空。
如何解决这个问题?
SelectedItem对象必须在ItemsSource集合内。
如果你想从新的ItemsSource集合中分配一个新的SelectedItem,它与之前的SelectedItem的属性相匹配,那么在更改ItemsSource并找到匹配的项之前保存属性值。
var id = ((MyType)MyCombo.SelectedItem).Id;
MyCombo.ItemsSource = MyNewList;
MyCombo.SelectedItem = MyNewList.FirstOrDefault(x => x.Id == id);