gpt4 book ai didi

c# - 通过后台代码设置DataGridTextColumn.ElementStyle

转载 作者:行者123 更新时间:2023-11-30 22:25:58 28 4
gpt4 key购买 nike

我的用户界面中有一个数据网格。数据表将绑定(bind)到它。因为数据表可能有不同的格式,所以我在代码后面为网格添加列和绑定(bind)值。见下文:

for (int iLoop = 0; iLoop < dtGroup.Columns.Count; iLoop++)
{
DataGridTextColumn dgColumn = new DataGridTextColumn();
dgColumn.Header = dtGroup.Columns[iLoop].ColumnName;
dgColumn.Binding = new Binding(dtGroup.Columns[iLoop].ColumnName);


this.dgGroupMatrix.Columns.Add(dgColumn);
}

我想要的是让网格单元格的背景颜色基于值。

我可以通过 XAML 做到这一点。

<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding Path= operation_name}" Header="operation_name">
<DataGridTextColumn.ElementStyle>
<Style TargetType="{x:Type TextBlock}">
<Style.Triggers>
<Trigger Property="Text" Value="V31">
<Setter Property="Background" Value="LightGreen"/>
</Trigger>
</Style.Triggers>
</Style>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
</DataGrid.Columns>

但我无法在 XAML 中设置网格的列,因为此网格将具有不同的格式。

我能做什么?

最佳答案

在代码中做同样的事情:

for (int iLoop = 0; iLoop < dtGroup.Columns.Count; iLoop++)
{
DataGridTextColumn dgColumn = new DataGridTextColumn();
dgColumn.Header = dtGroup.Columns[iLoop].ColumnName;
dgColumn.Binding = new Binding(dtGroup.Columns[iLoop].ColumnName);

Style columnStyle = new Style(typeof(TextBlock));
Trigger backgroundColorTrigger = new Trigger();
backgroundColorTrigger.Property = TextBlock.TextProperty;
backgroundColorTrigger.Value = "V31";
backgroundColorTrigger.Setters.Add(
new Setter(
TextBlock.BackgroundProperty,
new SolidColorBrush(Colors.LightGreen)));
columnStyle.Triggers.Add(backgroundColorTrigger);
dgColumn.ElementStyle = columnStyle;

this.dgGroupMatrix.Columns.Add(dgColumn);
}

关于c# - 通过后台代码设置DataGridTextColumn.ElementStyle,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12089541/

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