Wpf 当ItemsSource更改时,SelectedValue显式绑定会更新。为什么?

Wpf 当ItemsSource更改时,SelectedValue显式绑定会更新。为什么?,wpf,binding,itemssource,selectedvalue,Wpf,Binding,Itemssource,Selectedvalue,我有一个列表框,其显式绑定设置为SelectedValue SelectedValue="{Binding Path=Property, UpdateSourceTrigger=Explicit}" ListBox的ItemSource是一个ObservableCollection 当我选择ListBox中的一项并按“Enter”键时,我会以以下方式更新属性值: BindingExpression be = listBox.GetBindingExpression(ListBox.Select

我有一个列表框,其显式绑定设置为SelectedValue

SelectedValue="{Binding Path=Property, UpdateSourceTrigger=Explicit}"
ListBox的ItemSource是一个ObservableCollection

当我选择ListBox中的一项并按“Enter”键时,我会以以下方式更新属性值:

BindingExpression be = listBox.GetBindingExpression(ListBox.SelectedValueProperty);
be.UpdateSource();
现在,我遇到了这个问题:我必须通过窗口上的特定操作重置ListBox的ItemsSource,当调用ItemsSource的“Clear”方法时,与SelectedValue的绑定被更新(为null)!为什么?


如何避免它?

当您清除/重置itemsSource时,如果从itemsSource中删除该项,则selecteditem将为空。显然,SelectedValue将变为null


如果清除集合导致错误,则意味着首先将Itemsource设置为null,然后清除集合并重新绑定它。

我尝试执行以下操作:BindingOperations.ClearBinding(listBox,listBox.SelectedValueProperty);ItemsSource.Clear();listBox.SetBinding(listBox.SelectedValueProperty,…);看起来很有效…我正在测试