[英]MVVM: Force ComboBox labels to refresh
我有一個綁定到ObservableCollection<IDrive>
的 ComboBox
問題是IDrive
不支持INotifyPropertyChange
也不應該支持。
雖然我的 ComboBox 中的元素數量是固定的並且不會改變,但 ComboBox 中顯示的標簽可以並且將會改變。
如何讓這些標簽更新?
在我的 ObservableCollection 上觸發PropertyChanged
不會刷新標簽的內容,但它會重置SelectedItem
,這是我什至不想要的副作用。
這是我當前的 XAML:
<ComboBox Grid.Column="1" Grid.Row="0" Grid.ColumnSpan="4"
ItemsSource="{Binding Drives}" SelectedItem="{Binding SelectedDrive}"
IsSynchronizedWithCurrentItem="True" DisplayMemberPath="Label"
Margin="5,5,5,5" VerticalAlignment="Center" />
Label
是我的IDrive
界面中的屬性
您需要將這些項目包裝在DriveViewModel : INotifyPropertyChanged
並重復相關屬性。 並以某種方式觸發更改的事件。
再想一想,我不確定 DisplayMemberPath 是否注意到這一點。 您可能還需要一個 ItemTemplate。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.