我正在将DataTable绑定到WPF DataGrid(DataGrid上自动生成的列)。
我想为第一列,最后一列和最后一行中的所有单元格指定不同的样式。
如何实现这一目标?
修改
这里的问题是我没有定义属性名称的数据对象,并且DataTable列名称不是常量,因为它是自动生成列的动态。
AutoGeneratingColumn事件 - e.DisplayIndex始终为-1,是否有从此处到DataTable的列和行索引的路径?
转换器 - 如何传入单元格的行和列索引?
答案 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