按条件为行着色
本文关键字:条件 | 更新日期: 2023-09-27 18:00:49
这是我创建DataGrid:时的WPF代码
<DataGrid x:Name="DGruta11" Height="365" Width="836" Canvas.Left="19"
Canvas.Top="115" CanUserReorderColumns="False"
HorizontalGridLinesBrush="#FFD8D8D8"
VerticalGridLinesBrush="#FFD8D8D8"
IsReadOnly="True" >
</DataGrid>
我用C#创建的数据表填充这个网格。
我总共得到了19排,我将永远收到这笔钱。第0、1、2行应为灰色粗体字母。
第3、4、5、6、7、8、9行应为浅灰色。
第10、11、12行应为白色。
第13、14、15、16、17、18行应再次为灰色。
其中的一部分,但使用相同的数据网格,如果单元格是数字,那么我希望该数字的格式为0.00("9.00","1.000.00","0.05"(
同样,从第2列开始,所有信息都应向右对齐。
我希望你能帮我解决这个问题。我感谢大家的帮助。
试试这个
<DataGrid ItemsSource="{Binding YourDataToBind}" AutoGenerateColumns="False" CanUserAddRows="False">
<DataGrid.RowStyle>
<Style TargetType="DataGridRow">
<Setter Property="Background">
<Setter.Value>
<SolidColorBrush Color="{Binding YourDataToBind.ValueAsCondition, Converter={StaticResource YourValueToColorConverter}}"/>
</Setter.Value>
</Setter>
</Style>
</DataGrid.RowStyle>
<DataGrid.Columns>
<DataGridCheckBoxColumn Header="ColumHeader" Binding="{Binding ValueInColum}" />
...
您可以在c#中更改行的背景色。这里有一个关于如何做到这一点的很好的例子。如何更改datagridview中的行颜色?
基本上,您将在所有行中循环,并使用条件语句来确定应将哪种颜色应用于此行。
类似这样的东西:
int rowCount = 0;
foreach (DataGridViewRow row in DGruta11.Rows)
{
rowCount += 1;
if (rowCount > 2 && rowCount < 10)
{
row.DefaultCellStyle.BackColor = Color.LightGray;
}
}