我有一个绑定(bind)到 ObservableCollection<IDrive>
的 ComboBox
问题是 IDrive
不支持 INotifyPropertyChange
也不应该。
虽然我的 ComboBox 中的元素数量是固定的并且不会改变,但 ComboBox 中显示的标签可以并且将会改变。
如何让这些标签更新?
开火PropertyChanged
在我的 ObservableCollection 上不会刷新标签的内容,但会重置 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
中的属性(property)界面
最佳答案
您需要将元素包装在 DriveViewModel : INotifyPropertyChanged
中。并让它重复相关的属性。并以某种方式触发更改的事件。
再想一想,我不确定 DisplayMemberPath 是否接受了这一点。您可能还需要一个 ItemTemplate。
关于c# - MVVM:强制组合框标签刷新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39947755/