【发布时间】:2012-02-15 20:40:37
【问题描述】:
我有一个数据网格,它以 XML 文件为基础。 根据 xml 中的数据,对列表进行排序。
我现在要做的是更改前 3 行背景颜色,例如第一个红色、第二个黄色和第三个蓝色。 第 3 次之后,它都可以只是默认的白色。
我找不到如何做到这一点,任何人都可以帮助我吗?
谢谢!
【问题讨论】:
我有一个数据网格,它以 XML 文件为基础。 根据 xml 中的数据,对列表进行排序。
我现在要做的是更改前 3 行背景颜色,例如第一个红色、第二个黄色和第三个蓝色。 第 3 次之后,它都可以只是默认的白色。
我找不到如何做到这一点,任何人都可以帮助我吗?
谢谢!
【问题讨论】:
最简单的方法是处理DataGrid 的LoadingRow 事件并更新其中的颜色。
private void dg_LoadingRow(object sender, System.Windows.Controls.DataGridRowEventArgs e)
{
int index = e.Row.GetIndex();
if (index == 0)
e.Row.Background = Brushes.Blue;
else if (index == 1)
e.Row.Background = Brushes.Red;
else if (index == 2)
e.Row.Background = Brushes.White;
}
另一种方法是使用this 帖子中描述的方法从DataGrid 中检索前三个DataGridRow。然后使用dataGridRow的Background属性来改变它的颜色
更简洁的方法是为DataGridRow 定义一个style,并使用triggers 更改特定DataGridRow 的background 颜色。我不确定您在更改前三行的background 颜色之后是否有一些标准,或者这是一个硬编码要求。如果它是DataGrid 中的某些标准或值,那么您应该采用基于Style 的方法。
【讨论】: