gpt4 book ai didi

c# - MVVM:强制组合框标签刷新

转载 作者:行者123 更新时间:2023-12-03 10:34:11 25 4
gpt4 key购买 nike

我有一个绑定(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/

25 4 0