gpt4 book ai didi

c# - 如何在控件 :DataGrid by binding with the value of a column in that row in UWP C#? 中绑定(bind)一行的颜色

转载 作者:行者123 更新时间:2023-12-05 06:24:25 25 4
gpt4 key购买 nike

UWP C#中如何改变一行或一列中的特定值的行背景颜色>

我已经使用 controls:DataGrid 在 UWP 中显示 DataTable 的值。我正在尝试根据 DataTable 的“颜色”列中的值绑定(bind)行的颜色。如果“颜色”列是某行的“红色”,我必须将行背景设置为“红色”,否则为绿色。

<controls:DataGrid.RowStyle>
<Style TargetType="controls:DataGridRow">
<Setter Property="Background" Value="{Binding ColumnForColorInDataTable}" />
</Style>
</controls:DataGrid.RowStyle>

代码部分来 self 的 xaml 文件。

最佳答案

UWP中的XAML与WPF不同,在Setter中写入绑定(bind)内容不生效。目前DataGrid属于社区控件,和WPF的DataGrid还有差距。为实现您的目标,我建议使用 ListView 以获得更高程度的个性化。

但是关于更改行背景颜色的目标。 DataGrid 目前没有直接的方法来执行此操作。不过还是有一个Hack方法可以达到你的目的。

DataGrid 的每一行都由多个单元格组成。很难准确控制一行,但我们可以控制每个单元格的性能。

假设我们有一个具有 NameColumnForColorInDataTable 属性的 Person 类。

<Page
...
>
<Grid>
<controls:DataGrid AutoGenerateColumns="False" ItemsSource="{x:Bind PersonCollection}">
<controls:DataGrid.Columns>

<controls:DataGridTemplateColumn
Header="Name"
Width="SizeToHeader">

<controls:DataGridTemplateColumn.CellTemplate>
<DataTemplate x:DataType="Person">
<Border Background="{Binding ColumnForColorInDataTable}">
<TextBlock Text="{Binding Name}" HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Border>
</DataTemplate>
</controls:DataGridTemplateColumn.CellTemplate>

</controls:DataGridTemplateColumn>

<!-- Other Columns-->

</controls:DataGrid.Columns>
</controls:DataGrid>
</Grid>
</Page>

通过这种方式,让一排单元格保持相同的颜色,伪装起来达到你的目的。

最好的问候。

关于c# - 如何在控件 :DataGrid by binding with the value of a column in that row in UWP C#? 中绑定(bind)一行的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57690744/

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