如果特定值,将颜色应用于datacell

时间:2013-12-03 15:48:15

标签: c# xaml datagrid foreach styles

我想遍历我的数据网格,如果一行有一定的值(例如值3,这个值是动态的,所以可以改变,但现在让我们说3),将单元格的背景颜色改为绿色。通过将数据网格绑定到数据表来填充数据网格。

这可能吗?

请参阅下面的datagrid和c#

 <DataGrid Name="grid" ItemsSource="{Binding}" Height="300" Width="900"
          AutoGenerateColumns="True"
          VerticalScrollBarVisibility="Disabled" HorizontalAlignment="Center" VerticalAlignment="Top" RowHeight="40">
            <DataGrid.ItemsPanel>
                <ItemsPanelTemplate>
                    <WrapPanel Orientation="Vertical" />
                </ItemsPanelTemplate>
            </DataGrid.ItemsPanel>
        </DataGrid>

c#创建数据表

DataSet dataSet = new DataSet("myDS");
            DataTable numbersTable = new DataTable("Numbers");
            numbersTable.Columns.Add("Number", typeof(Int32));
            for (int i = 1; i < 91; i++)
            {
                numbersTable.Rows.Add(i);
            }
            dataSet.Tables.Add(numbersTable);
            grid.DataContext = numbersTable.DefaultView;

P.S。非常非常非常新的c#所以不要假设我知道你在说什么。原谅我的无知。

2 个答案:

答案 0 :(得分:0)

您应该使用ItemTemplate风格的样式触发器。

编辑:完整的DataTemplate实现

<DataTemplate>
    <DataTemplate.Resources>
        <Style TargetType="TextBlock">
            <Style.Triggers>
                <Trigger Property="Text" Value="3">
                    <Setter Property="Background" Value="Green"/>
                </Trigger>
            </Style.Triggers>
        </Style>
    </DataTemplate.Resources>
    <TextBlock Text="{Binding Mode=OneWay}"/>
</DataTemplate>

答案 1 :(得分:-1)

使用此

row.Cells[index].Style.BackColor = Color.Green;