2010-06-25 83 views
1

我有一個顯式綁定設置爲SelectedValue的ListBox。當ItemsSource改變時,SelectedValue顯式綁定更新。爲什麼?

SelectedValue="{Binding Path=Property, UpdateSourceTrigger=Explicit}" 

ListSource的ItemSource是一個ObservableCollection。

當我選擇列表框,然後按項目「回車」我更新這樣的屬性值:

BindingExpression be = listBox.GetBindingExpression(ListBox.SelectedValueProperty); 
be.UpdateSource(); 

現在,我有這樣的問題:我有具體行動,ListBox的的ItemsSource復位在我的窗口,當爲ItemsSource調用「Clear」方法時,更新SelectedValue的綁定(爲null)!爲什麼?

如何避免它?

回答

1

當您清除/重置itemsSource時,如果從itemssource中刪除該項目,則selecteditem將爲null。顯然,SelectedValue將變爲null。

如果清除導致錯誤的集合意味着首先使Itemsource = null並清除集合並重新綁定它。

+0

我嘗試這樣做: BindingOperations.ClearBinding(listBox,ListBox.SelectedValueProperty); ItemsSource.Clear(); listBox.SetBinding(ListBox.SelectedValueProperty,...); 似乎有效...我正在測試 – 2010-06-25 09:48:19

相關問題