WPF DataGrid中的动态列生成

时间:2012-04-12 07:59:32

标签: wpf data-binding mvvm wpfdatagrid

我有一个具有30个属性的对象,具体取决于谁在查看数据,我需要向他提供10-12个属性。 这些属性将形成WPF数据网格的列。我使用的是.Net 4.0 但是,所有这些都将在运行时发生。我需要做的就是MVVM方式。 任何关于如何实现这一目标的方向都将受到赞赏。

的问候,

1 个答案:

答案 0 :(得分:0)

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

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

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

这稍微有些工作,但MVVM更真实,因为数据隐藏发生在ViewModel中,因此可以进行测试。