WPF MVVM DataGrid itemsSource绑定到不同集合



我有一个带有动态菜单的窗口和一个datagrid,该窗口基于单击哪个菜单项显示不同的记录。每个菜单项都返回自定义类的观测值。所有类都不同,不一定彼此相关。

目前,我在视图模型中创建了一个ObservableCollection(对象(,每次单击菜单项时,都会填充新结果。问题是对象没有实现InotifyPropertyChanged,迫使我手动分配了这些项目。

我敢肯定有一种方法可以完成我追求的目标,但我想不到。

您有两个选项:

  • 清除观测值,然后将新项目添加到其中。尽管有多次通知(事件(在您执行时会发射多次通知(事件(,但如果它有多个通知(事件(,则如果它是几十个项目,那么您会开始注意到某些UI速度降低

  • 确保您的ViewModel实现InotifyPropertyChanged,并且包含ObservableCollection的属性会触发属性更改通知。然后,当您有一个新列表时,只需分配一个新的ObservableCollection。

由于您的集合包含不同类型的对象,因此我相信您已经研究了数据模板(另一个示例(以构建UI - 这样您就可以拥有取决于列表项目类型的自定义布局。/p>

最新更新