发生的这个问题是,每当 WPF ComboBox
ItemsSource 属性更改时,SelectedItem 属性将设置为 null。
重现问题的要求:
- 原始 ItemsSource 是一组没有值(value)的对象 类型
- SelectedValue 绑定(bind)到一些属性
- 已设置 SelectedValuePath
- SelectedItem 是原始 ItemsSource 中的某个项目
- New ItemsSource 是与 原创
- 不包含对同一对象的引用的 ItemsSource 内存为当前SelectedItem
实际上我想在 Datagrid 模板中绑定(bind)组合框,组合框集合存在于 View 模型中,当我更改第一列属性时,其他行组合框项目变为空。
我该如何解决这个问题?
最佳答案
SelectedItem 对象必须在 ItemsSource 集合中。
如果您想从新的 ItemsSource 集合中分配一个新的 SelectedItem,它与先前 SelectedItem 的属性相匹配,那么在更改 ItemsSource 之前保存属性值并找到匹配的项目。
var id = ((MyType)MyCombo.SelectedItem).Id;
MyCombo.ItemsSource = MyNewList;
MyCombo.SelectedItem = MyNewList.FirstOrDefault(x => x.Id == id);
关于c# - WPF `ComboBox` ItemsSource 属性已更改 SelectedItem 属性被设置为 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31794046/