【发布时间】:2010-12-03 09:35:24
【问题描述】:
设置:
- 有一个绑定到 ObservableCollection 的 ComboBox。
- UI 中有一个 Car 对象。它的 Color 属性绑定到 ComboBox 的 SelectedItem(绑定:
<ComboBox SelectedItem="{Binding Car.Color}".../> - 数据库中的颜色列表可能会发生变化,应不时刷新。
问题:
当ObservableCollection<MyColor> 被刷新(== 这意味着它在其CollectionChanged 事件中发送Reset)时,Car 的 Color 属性设置为集合中的第一项 => 列表被刷新 => ComboBox 重新加载集合并将其选定项设置为集合中的第一项 => 汽车的颜色更改为相同的第一项(因为双向绑定)=> 问题
简而言之 - 我该如何避免这种情况?如何在重新加载时告知将所选项目立即从绑定中取出?
【问题讨论】:
-
ObservableCollection
- MyColor 类的代码是什么 -
这并不重要。想象一下通常的“公共类 MyColor : INotifyPropertyChanged { /* some members */ }”。没什么特别的。
标签: wpf data-binding two-way