繁体   English   中英

根据数据表更改数据网格的单元格颜色

[英]Changing cell color of a datagrid based on a datatable

我有一个数据表,我想根据数据表的值更改数据网格中单元格的颜色。

例如,在某些单元格中,字段被写为:无效,忙碌。 无效时,我想用红色留下您的背景,而我想用绿色留下多少忙碌

数据表

     0     1     3     4
0 invalid

1              invalid

2

3 invalid

4                     invalid

所以在我的数据网格坐标(0,0),(3,0),(3,1)和(4,4)中,我想绘制红色背景

这怎么可能? 我试图通过以下方式做到这一点

<DataGrid x:Name="gvPreV" RowHeaderWidth = "70" CanUserAddRows="True" SelectionUnit="Cell"  Margin="10,117,10,10" 
                    ItemsSource="{Binding}"  FontSize="16" BorderThickness="1,1,1,1" AutoGenerateColumns="True"  AllowDrop="True" 
                    Background="White" ColumnHeaderHeight="30" MinColumnWidth="150" 
                    LoadingRow="gvDados_LoadingRow" IsReadOnly="True" CanUserSortColumns="False" 
                    AlternationCount="2" AlternatingRowBackground="#FFF9F9F9" VerticalGridLinesBrush="#FF252424"
                    HorizontalGridLinesBrush="#FF2B2828" MouseDoubleClick="gvPreV_MouseDoubleClick" BorderBrush="#FFB6B6B6" HeadersVisibility="All"
                     SelectionChanged="gvPreV_SelectionChanged" RowHeight="40" MinRowHeight="40" CanUserReorderColumns="False" CanUserResizeColumns="False" CanUserResizeRows="False"        
                 >

        <DataGrid.CellStyle>
            <Style TargetType="{x:Type DataGridCell}" >
                <Setter Property="Background" Value="Green"/>         
                <Style.Triggers>                        
                    <DataTrigger Binding="{Binding Name}" Value="invalid">
                        <Setter Property="Background" Value="Red"/>                         
                    </DataTrigger>
                </Style.Triggers>
            </Style>
        </DataGrid.CellStyle>

    </DataGrid>

我有一个变量名,并且将其设置为无效,因此它将已经保留了预期颜色的所有无效值,但是这无效,所有内容都变为绿色

  string Name = "invalid";
  public ViewConfigAgendaDin()
  {
      InitializeComponent();
      Inicializa();
      gvPreV.ItemsSource = null;
      gvPreV.ItemsSource = dtPreVisualizacao.DefaultView;
      gvPreV.UpdateLayout();
  }

请使用<Style TargetType="{x:DataGridCell}"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM