用c#代码实现WPF中DataGrid列表选中某一行后,点击某按钮后,选中的行变为红色
时间: 2023-12-10 20:37:24 浏览: 108
C#WPF之DataGrid用法
4星 · 用户满意度95%
可以通过修改选中行的样式来实现这个功能。以下是一个实现示例:
在XAML中,设置DataGrid的样式:
```xml
<DataGrid Name="myDataGrid" AutoGenerateColumns="False" SelectionMode="Single">
<DataGrid.RowStyle>
<Style TargetType="DataGridRow">
<Setter Property="Background" Value="White"/>
<Style.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter Property="Background" Value="Red"/>
</Trigger>
</Style.Triggers>
</Style>
</DataGrid.RowStyle>
<DataGrid.Columns>
<!-- 列定义 -->
</DataGrid.Columns>
</DataGrid>
```
在按钮的Click事件中,将选中行的Background属性设置为Red:
```csharp
private void btnChangeColor_Click(object sender, RoutedEventArgs e)
{
if (myDataGrid.SelectedItem != null)
{
DataGridRow row = (DataGridRow)myDataGrid.ItemContainerGenerator.ContainerFromItem(myDataGrid.SelectedItem);
row.Background = Brushes.Red;
}
}
```
以上代码中,首先判断当前是否有选中行,如果有则获取选中行的DataGridRow对象,并将其Background属性设置为Red。
注意:这种方式只会在选中行改变时才会更新样式,如果需要实时更新样式,需要在DataGrid的SelectionChanged事件中处理。
阅读全文