基于索引的WPF DataGrid样式单元格

时间:2012-10-11 10:47:19

标签: c# wpf xaml datagrid wpfdatagrid

我正在将DataTable绑定到WPF DataGrid(DataGrid上自动生成的列)。

我想为第一列,最后一列和最后一行中的所有单元格指定不同的样式。

如何实现这一目标?

修改

这里的问题是我没有定义属性名称的数据对象,并且DataTable列名称不是常量,因为它是自动生成列的动态。

AutoGeneratingColumn事件 - e.DisplayIndex始终为-1,是否有从此处到DataTable的列和行索引的路径?

转换器 - 如何传入单元格的行和列索引?

1 个答案:

答案 0 :(得分:2)

假设您在XAML资源中的某处存储了单元格样式和行样式,我建议您在代码隐藏中处理datagrid的两个事件,这些事件是:

int c = myDataTable.Rows.Count;
myDataGrid.AutoGeneratedColumns += (s, e) =>
{
   myDataGrid.Columns[myDataGrid.Columns.Count - 1].CellStyle = this.Resources["myCellStyle"] as Style;
   myDataGrid.Columns[0].CellStyle = this.Resources["myCellStyle"] as Style;
};
myDataGrid.LoadingRow += (s, e) =>
{
   int x = e.Row.GetIndex();
   if (c - 1 == x) e.Row.Style = this.Resources["myRowStyle"] as Style;
};

HTH