[英]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.