对于列行中的特定值,如何在UWP C#>中更改行背景色。
我使用controls:DataGrid在UWP中显示DataTable的值。我试图根据DataTable的" color“列中的值绑定行的颜色。如果"Color“列是一行的”红色“,则必须设置行背景”红色“,否则设置为绿色。
<controls:DataGrid.RowStyle>
<Style TargetType="controls:DataGridRow">
<Setter Property="Background" Value="{Binding ColumnForColorInDataTable}" />
</Style>
</controls:DataGrid.RowStyle>
代码部分来自我的xaml文件。
发布于 2019-08-28 12:25:01
UWP中的XAML与WPF不同,在Setter
中写入绑定内容不会生效。目前,DataGrid属于社区控制,而WPF的DataGrid之间还存在一定的差距。为了实现您的目标,我建议您使用ListView进行更高程度的个性化设置。
但是关于你改变行背景颜色的目标。目前,DataGrid
没有直接的方法来做到这一点。但是仍然有一个黑客方法来达到你的目的。
DataGrid的每一行由多个单元格组成。精确地控制一行是很困难的,但是我们可以控制每个单元的性能。
假设我们有一个Person类,它具有Name
和ColumnForColorInDataTable
属性。
<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>
这样,让一行细胞保持相同的颜色,变相达到你的目的。
诚挚的问候。
https://stackoverflow.com/questions/57690744
复制相似问题