3

我有一个对象,它有大约 30 个属性,这取决于查看数据的人,我只需要向他展示 10-12 个属性。这些属性将形成 WPF 数据网格的列。我正在使用 .Net 4.0 但是,所有这些都将在运行时发生。我需要这样做是 MVVM 方式。任何关于如何实现这一点的方向都将不胜感激。

问候,

4

1 回答 1

0

据我所知,你有两个选择。

1) 从您的 ViewModel 中公开一个ViewableDetailsType枚举属性,告诉您应该显示什么样的数据视图。然后,您可以在视图中创建触发器,DataGrid以设置Columns网格的属性以手动显示相应的列。

2) 更好的方法是为您的底层模型对象创建包装器、DTO 类型的 ViewModel 对象。一个用于您要公开的对象的每个视图。然后,您将一组适当的包装对象公开给视图,DataGrid 可以使用自动列。

这需要做更多的工作,但对于 MVVM 来说更是如此,因为数据隐藏发生在 ViewModel 中,因此可以进行测试。

于 2012-04-12T10:15:19.040 回答