我有一个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)!为什么呢?
如何避免它?
答案 0 :(得分:2)
当您清除/重置itemsSource时,如果从itemssource中删除该项,则selecteditem将为null。显然SelectedValue将变为null。
如果清除集合导致错误,则首先使Itemsource = null并清除集合并重新绑定它。