WPF DataGrid获取单元格并改变背景色
时间: 2024-03-09 08:48:31 浏览: 126
wpf中datagrid动态设置单元格背景
你可以使用 WPF DataGrid 的样式和模板来实现单元格背景色的改变。以下是一个简单的示例:
1. 在 XAML 中添加 DataGrid 控件,并设置 AutoGenerateColumns 属性为 False。
```xml
<DataGrid x:Name="MyDataGrid" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Header="Name" Binding="{Binding Name}" />
<DataGridTextColumn Header="Age" Binding="{Binding Age}" />
</DataGrid.Columns>
</DataGrid>
```
2. 在代码中创建数据源,并设置 DataGrid 的 ItemsSource 属性。
```csharp
List<Person> people = new List<Person>
{
new Person { Name = "Tom", Age = 28 },
new Person { Name = "Jerry", Age = 32 },
new Person { Name = "Mickey", Age = 25 }
};
MyDataGrid.ItemsSource = people;
```
3. 在 DataGrid.CellStyle 属性中定义单元格样式,使用 DataTrigger 来改变单元格背景色。
```xml
<DataGrid.CellStyle>
<Style TargetType="DataGridCell">
<Setter Property="Background" Value="Transparent" />
<Style.Triggers>
<DataTrigger Binding="{Binding Name}" Value="Tom">
<Setter Property="Background" Value="Yellow" />
</DataTrigger>
</Style.Triggers>
</Style>
</DataGrid.CellStyle>
```
在上述示例中,当单元格中的值为 "Tom" 时,背景色会变为黄色。
另外,为了更好地控制单元格的样式,你还可以在 DataGridTemplateColumn 中定义单元格模板,并在其中添加控件以实现更复杂的样式。
阅读全文