繁体   English   中英

当将数据表填充为IListSource时,根据值更改WPF DataGrid单元格的背景

[英]Change background of WPF DataGrid cell depending on value when populated with a datatable as IListSource

我已经看到了类似的帖子像这样

但是,他们似乎没有回答我的问题。 我在WPF应用程序中有一个XAML数据网格

<DataGrid AutoGenerateColumns="True" Grid.Row="1" AlternationCount="2" HeadersVisibility="Column" Name="dgSkillsMatrix" Margin="0,0,0,1" HorizontalGridLinesBrush="White" VerticalGridLinesBrush="White" AlternatingRowBackground="#FFD0D0EB" RowBackground="#FFECECF5" FontSize="12">
    <DataGrid.CellStyle>
        <Style TargetType="{x:Type DataGridCell}">
            <Style.Triggers>
                <DataTrigger Binding="{Binding Value}" Value="1">
                    <Setter Property="Background" Value="Red"/>
                </DataTrigger>
                <DataTrigger Binding="{Binding Content}" Value="2">
                    <Setter Property="Background" Value="Green"/>
                </DataTrigger>
                <DataTrigger Binding="{Binding Text}" Value="1">
                    <Setter Property="Background" Value="Black"/>
                </DataTrigger>
                <DataTrigger Binding="{Binding Name}" Value="Temp">
                    <Setter Property="Background" Value="Black"/>
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </DataGrid.CellStyle>
</DataGrid>

如您所见,我尝试了多种“触发”颜色变化的方法,但是没有一种可以触发。 如果我将通用设置放在触发器上方,它将更改颜色。

我认为问题在于我是从动态数据集中绑定到数据网格,该数据可能会每天发生变化,因此我正在使用数据表(如下所示),因为存在很多不同的库仑,这意味着我无法使用每行有一个对象,我不知道什么时候列/属性的数量会改变。

this.dgSkillsMatrix.ItemsSource = (dt as IListSource).GetList();

我只需要知道如何触发触发器以根据从数据表到列表源创建的单元格的值来更改属性。

链接是否有帮助? 似乎绑定到DataTable可能会导致一些单元格着色问题,您是否尝试过实现本文所建议的数据转换器和MultiDataBinding?

暂无
暂无

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

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