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

时间:2010-06-25 08:55:00

标签: wpf binding itemssource selectedvalue

我有一个ListBox,其显式绑定设置为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)!为什么呢?

如何避免它?

1 个答案:

答案 0 :(得分:2)

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

如果清除集合导致错误,则首先使Itemsource = null并清除集合并重新绑定它。