簡體   English   中英

綁定更改時WPF組合框文本框未更新

[英]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。 問題在於組合框內的文本框未刷新。

我發現了一個類似的問題:

WPF ComboBox SelectedItem未更新

這給出了答案的提示,但不幸的是還不夠。

最有可能您的mySelectedItem不是依賴項屬性。 或者,包含類不實現INotifyPropertyChanged

考慮當您的值既不是依賴項屬性也不是INotifyPropertyChanged的屬性時的情況。 在這種情況下,WPF沒有機會知道其值已更改,因此該值在開始時僅加載一次(使用反射)。

對於依賴項屬性或包含對象支持INotifyPropertyChanged ,WPF框架可以訂閱值更改,從而更新組合框。

如果您希望在“ myList”集合后面的值更改時更改選定的項目,則不會更改。 如果您使用的是MVVM,並且正在視圖模型中實現INotifyPropertyChanged。 然后,當為myList引發PropertyChanged時,如果期望它以任何方式重新綁定或更改,則也應為'mySelectedItem'引發。

在這里為您更新了答案

希望能幫助到你!!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM