[英]Silverlight Datagrid: Changing cell styles, based on values
我有一些数据。 如果数据满足某个条件,我想查看该数据并更改单元格(例如 - 背景颜色)。 不知何故,我无法弄清楚如何在Silverlight中做这个看似简单的事情。
这是稍微陈旧的代码(来自RTM之前),但是做了类似于你正在寻找的东西。 它检查一行中某个对象的某些数据,然后相应地设置该行的颜色。
XAML:
<my:DataGrid x:Name="Grid" Grid.Row="1" Margin="5" GridlinesVisibility="None" PreparingRow="Grid_PreparingRow">
<my:DataGrid.Columns>
<my:DataGridTextBoxColumn
DisplayMemberBinding="{Binding Cheese}"
Header="Cheese"></my:DataGridTextBoxColumn>
<my:DataGridTextBoxColumn
DisplayMemberBinding="{Binding Biscuit}"
Header="Biscuit"></my:DataGridTextBoxColumn>
</my:DataGrid.Columns>
</my:DataGrid>
码:
this.Grid.AlternatingRowBackground = null;
private void Grid_PreparingRow(object sender, DataGridRowEventArgs e)
{
CheesyClass c = e.Row.DataContext as CheesyClass;
if (c != null && c.Cheese == "cheddar")
{
e.Row.Background = new System.Windows.Media.SolidColorBrush(System.Windows.Media.Color.FromArgb(255, 255, 125, 125));
}
}
实际上这并不适用于所有例子。 请参阅这些链接以了解实现此目的的“正确”方法
我通常为每个被绑定的数据类型编写自定义ValueConverters,返回Visibility,Color等。
这给出了定义规则定义的单一点,我发现它非常有效。
Robin的第二个链接描述了编写自定义ValueConverter。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.