3

我有一些数据。如果该数据满足特定条件,我想浏览该数据并更改单元格(例如 - 背景颜色)。不知何故,我无法弄清楚如何在 Silverlight 中完成这个看似简单的事情。

4

3 回答 3

5

这是稍微旧的代码(来自 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));
    }
}
于 2008-12-18T15:23:37.717 回答
1

实际上,这并非在所有示例中都有效。请参阅这些链接以了解实现此目的的“正确”方式

http://silverlight.net/forums/p/27465/93474.aspx#93474

http://silverlight.net/forums/t/27467.aspx

于 2009-01-12T07:51:27.450 回答
0

我通常为每个绑定的数据类型编写自定义 ValueConverters,返回 Visibility、Color 等。

这提供了一个定义自定义规则的点,我发现效果很好。

Robin 的第二个链接描述了编写自定义 ValueConverter。

于 2009-01-23T15:16:13.277 回答