gpt4 book ai didi

c# - 根据数据表值更改数据网格行的背景

转载 作者:太空宇宙 更新时间:2023-11-03 13:43:40 26 4
gpt4 key购买 nike

我正在努力解决一个看似简单的问题:我有一个绑定(bind)到数据表的数据网格。此数据表包含一个名为“COLORSTATUS”(枚举值)的列 - 我想根据 ColorStatus 绘制数据表的每一行。我试图构建一个值转换器 - 但我无法将整行和/或数据表传递给它。我已经考虑过将 DataGridRow 事件与 Caliburns 消息 Hook - 但如何在 XAML 中执行此操作 - 我只能访问 DataGrid.RowStyle 元素。

<DataGrid x:Name="excelDataTable_ExcelData"  cal:Message.Attach="[Event AutoGeneratedColumns] = [Action HideTheColorColumn($source)]">
?? What to do here
</DataGrid>

我选择了这个解决方案:

    <DataGrid.RowStyle>
<Style TargetType="DataGridRow">
<Setter Property="Background" Value="{Binding Row, Converter={StaticResource ExcelRowColorConverter}}"></Setter>
</Style>
</DataGrid.RowStyle>

我有点惊讶,你可以通过“Row”。作为对转换器的提示:传递的对象是实际的 DataRow。

最佳答案

转换器应该可以正常工作,但您需要确保将其应用在正确的位置。

只需将 DataRow 传递给它,从中获取“COLORSTATUS”列值,并返回适当的颜色画笔。

例如,

<DataGrid.Resources>
<Style TargetType="{x:Type DataGridRow }">
<!-- DataContext will be your DataRow -->
<Setter Property="Background"
Value="{Binding Converter={StaticResource MyColorConverter}}" />
</Style>
</DataGrid.Resources>

关于c# - 根据数据表值更改数据网格行的背景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16061079/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com