设置datagrid列标题

时间:2018-01-15 12:25:51

标签: c# wpf xaml mvvm datagrid

我有一个datagrid(来自WPF Toolkit),它有一些列。

列标题是从xaml设置的。

然后从视图代码隐藏中,我在下面有一些地方:

MyDg.Columns[10].Visibility = Visibility.Collapsed;

所以问题是当我删除或添加一些列到datagrid时,我需要修改上面表达式中的索引集,具体取决于我删除或添加的列是否在上面表达式中引用的列之前。

所以我想以某种方式编写上面的表达式,以避免依赖于datagrid列的添加或删除过程。

例如,在视图代码中为头部和视图(xaml)定义一些常量,将这些常量作为头部名称分配给datagrid。然后从后面的视图代码我可以从列标题中找到索引并继续:

var index = dataGrid.Columns.Single(c => c.Header.ToString() == "HeaderName").DisplayIndex;

dataGrid.Columns[index].Visibility = Visibility.Collapsed;

我也考虑过将视图代码隐藏的属性绑定到每个datagrid列标题,但是在视图代码隐藏构造函数中,我将datacontext设置为视图模型。

关于如何做到这一点的任何想法?

0 个答案:

没有答案