我有一个对象,它有大约 30 个属性,这取决于查看数据的人,我只需要向他展示 10-12 个属性。这些属性将形成 WPF 数据网格的列。我正在使用 .Net 4.0 但是,所有这些都将在运行时发生。我需要这样做是 MVVM 方式。任何关于如何实现这一点的方向都将不胜感激。
问候,
我有一个对象,它有大约 30 个属性,这取决于查看数据的人,我只需要向他展示 10-12 个属性。这些属性将形成 WPF 数据网格的列。我正在使用 .Net 4.0 但是,所有这些都将在运行时发生。我需要这样做是 MVVM 方式。任何关于如何实现这一点的方向都将不胜感激。
问候,
据我所知,你有两个选择。
1) 从您的 ViewModel 中公开一个ViewableDetailsType
枚举属性,告诉您应该显示什么样的数据视图。然后,您可以在视图中创建触发器,DataGrid
以设置Columns
网格的属性以手动显示相应的列。
2) 更好的方法是为您的底层模型对象创建包装器、DTO 类型的 ViewModel 对象。一个用于您要公开的对象的每个视图。然后,您将一组适当的包装对象公开给视图,DataGrid 可以使用自动列。
这需要做更多的工作,但对于 MVVM 来说更是如此,因为数据隐藏发生在 ViewModel 中,因此可以进行测试。