我有一个应用程序,它解析用户的数据,并使用WPF在DataGrids中显示有关它的信息。但是,每个用户只希望为每个网格显示某些字段。
现在,我为每个表使用多个数据网格,并选择一个用枚举显示。
避免有很多重复的xaml代码,并允许在遵守MVVM模式的同时添加新配置的最佳方法是什么?
DataGrid
的Column
支持Visibility
属性,该属性可以是可见的,也可以是折叠的。
您可以将此属性绑定到视图模型中的字段,以便视图模型可以控制哪些列可见,哪些列不可见。
您甚至可以编写转换器,将您已经拥有的enum
转换为任何给定列的Visibility
值,从而根据MVVM范式,使您的视图模型不受实质性表示问题的影响。
这可能会因为没有足够的焦点而被标记。这在很大程度上取决于你试图显示的数据的确切性质,即使这样,它也往往是基于观点的。
也就是说,如果您希望根据数据类型更改外观,则通常使用数据模板,而如果您希望显示根据已知类型的值更改,则通常会使用数据触发器。