WPF数据网格中的动态列生成

WPF数据网格中的动态列生成,wpf,data-binding,mvvm,wpfdatagrid,Wpf,Data Binding,Mvvm,Wpfdatagrid,我有一个对象,它有大约30个属性,取决于查看数据的人,我只需要向他展示10-12个属性。 这些属性将构成WPF数据网格的列。我正在使用.NET4.0 然而,所有这些都将在运行时发生。我需要这样做,这是MVVM的方式。 任何关于如何实现这一目标的方向都将受到赞赏 关于,据我所知,您有两个选择 1) 从ViewModel中公开一个ViewableDetailsTypeenum属性,该属性告诉您应该显示哪种类型的数据视图。在视图中,您可以在DataGrid中创建触发器,以设置网格的Columns属性以

我有一个对象,它有大约30个属性,取决于查看数据的人,我只需要向他展示10-12个属性。 这些属性将构成WPF数据网格的列。我正在使用.NET4.0 然而,所有这些都将在运行时发生。我需要这样做,这是MVVM的方式。 任何关于如何实现这一目标的方向都将受到赞赏


关于,

据我所知,您有两个选择

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

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

这项工作稍微多一些,但对于MVVM来说更为真实,因为数据隐藏发生在ViewModel中,因此可以进行测试