[英]WPF Combobox textbox not updating when binding changes
我有一個WPF CombBox,如下所示:
<ComboBox
ItemsSource="{Binding Source={StaticResource myList}}"
SelectedItem="{Binding Path=mySelectedItem}"
/>
我的問題是,當綁定值更改時,組合框文本框中的所選值不會更新。 (注意-組合框列表中的值會更新)。
我使用的是MVVM,因此我可以在視圖模型中檢測到綁定何時更改,並調用屬性更改事件,這將更新組合框,但不會更新文本框內顯示的值。
我認為這可以在組合框的模板中完成-以某種方式使文本框綁定到組合框的selecteditem,或者始終在更新時更新?
編輯:
我不清楚-我確實實現了INotifyPropertyChanged,當值更改時,我為myList和mySelectedItem引發了PropertyChanged。 問題在於組合框內的文本框未刷新。
我發現了一個類似的問題:
這給出了答案的提示,但不幸的是還不夠。
最有可能您的mySelectedItem
不是依賴項屬性。 或者,包含類不實現INotifyPropertyChanged
。
考慮當您的值既不是依賴項屬性也不是INotifyPropertyChanged
的屬性時的情況。 在這種情況下,WPF沒有機會知道其值已更改,因此該值在開始時僅加載一次(使用反射)。
對於依賴項屬性或包含對象支持INotifyPropertyChanged
,WPF框架可以訂閱值更改,從而更新組合框。
如果您希望在“ myList”集合后面的值更改時更改選定的項目,則不會更改。 如果您使用的是MVVM,並且正在視圖模型中實現INotifyPropertyChanged。 然后,當為myList引發PropertyChanged時,如果期望它以任何方式重新綁定或更改,則也應為'mySelectedItem'引發。
我在這里為您更新了答案
希望能幫助到你!!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.