设定:
<ComboBox SelectedItem="{Binding Car.Color}".../>
问题:
刷新ObservableCollection<MyColor>
时(==这意味着它在Reset
事件中发送CollectionChanged
),Car的Color属性设置为集合中的第一项=&gt ;列表刷新=&gt; ComboBox重新加载集合并将其选定的项目设置为集合中的第一个项目=&gt;汽车的颜色改为相同的第一项(因为双向绑定)=&gt;问题
总之 - 我怎么能避免这种情况?如何判断重新加载以立即从绑定中获取所选项目?
答案 0 :(得分:0)
您可以在集合更改时删除绑定:
var binding = comboBox.GetBindingExpression(ComboBox.SelectedItemProperty).ParentBinding;
comboBox.ClearValue(ComboBox.SelectedItemProperty);
ChangingData.Clear();
// <Rebuild>
comboBox.SetBinding(ComboBox.SelectedItemProperty, binding);