问题描述
如何更改 silverlight 数据网格行的颜色?!
How do you change the color of the silverlight datagrid rows?!
我已经尝试过这个,但它似乎并没有像我想要的那样工作......随机行的颜色不正确:
I've tried this but it doesn't seem to work how I want it to...Random rows get colored incorrectly:
void dataGrid1_LoadingRow(object sender, DataGridRowEventArgs e)
{
var c = e.Row.DataContext as Job;
if (c != null && c.Status.Contains("complete"))
e.Row.Background = new SolidColorBrush(Colors.Green);
else
e.Row.Background = new SolidColorBrush(Colors.Red);
}
推荐答案
Microsoft 文档:
为了提高性能,EnableRowVirtualization 属性是默认设置为true.当 EnableRowVirtualization 属性为设置为 true,DataGrid 不会实例化 DataGridRow 对象绑定数据源中的每个数据项.相反,DataGrid 创建DataGridRow 仅在需要时才对象,并尽可能多地重用它们能够.例如,DataGrid 为每个数据创建一个 DataGridRow 对象当前在视图中的项目并在它滚动时回收该行的观点.
来源:http://msdn.microsoft.com/en-gb/library/system.windows.controls.datagrid.unloadingrow.aspx
这说明了您遇到的行为
正确的(虽然我承认并不容易)解决方案是,因此,使用 UnloadingRow 事件来取消您设置的样式.
the proper (though not easier I admit) solution being, hence, to use the UnloadingRow event to unset the style you had set.
这篇关于C# Silverlight Datagrid - 行颜色更改的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!