我有一个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设置为视图模型。
关于如何做到这一点的任何想法?