我有一个具有30个属性的对象,具体取决于谁在查看数据,我需要向他提供10-12个属性。 这些属性将形成WPF数据网格的列。我使用的是.Net 4.0 但是,所有这些都将在运行时发生。我需要做的就是MVVM方式。 任何关于如何实现这一目标的方向都将受到赞赏。
的问候,
答案 0 :(得分:0)
据我所知,你有两个选择。
1)从ViewModel中公开ViewableDetailsType
枚举属性,告诉您应该显示哪种数据视图。在视图中,您可以在DataGrid
中创建触发器,以设置网格的Columns
属性,以手动显示相应的列。
2)更好的方法是为底层模型对象创建包装器,DTO类型的ViewModel对象。一个用于要显示的对象的每个视图。然后,将适当的包装器对象的集合公开给视图,DataGrid可以使用自动列。
这稍微有些工作,但MVVM更真实,因为数据隐藏发生在ViewModel中,因此可以进行测试。