WPF DataGrid中的动态列生成

3
我有一个对象,它有大约30个属性,根据谁查看数据,我需要向他展示只有10-12个属性。 这些属性将形成WPF datagrid的列。 我使用的是.Net 4.0 然而,所有这些都将在运行时发生。 我需要用MVVM方式来完成这件事。 如果您有任何指示如何实现此目标,将不胜感激。
敬礼
1个回答

0

就我所见,您有两个选择。

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

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

这需要稍微多做一些工作,但它更符合MVVM,因为数据隐藏发生在ViewModel中,因此可以进行测试。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接