WPF数据网格嵌套带-删除先前选定的行颜色
本文关键字:颜色 删除 数据网 数据 网格 嵌套 WPF | 更新日期: 2023-09-27 18:18:04
我有一个带状的WPF DataGrid,如果你选择顶部的带,行将变成蓝色,表示它是选中的drow(默认情况下)。但是,当用户从第二个波段选择一行时,我希望顶部波段的蓝色消失,因为这意味着很难发现在层次结构中选择了什么行。
可以通过XAML或c#实现吗?
通过XAML,我可以在每个波段(RowDetailsTemplate)上使用这样的东西
<DataGrid.RowStyle>
<Style TargetType="DataGridRow">
<Style.Triggers>
<Trigger Property="IsSelected"
Value="True">
<Setter Property="BorderBrush"
Value="Blue" />
<Setter Property="BorderThickness"
Value="2" />
</Trigger>
</Style.Triggers>
</Style>
</DataGrid.RowStyle>
通过c#我可以在点击一行时得到selectedRow
DataGridRow selectedRow = DataGridRow.GetRowContainingElement(expandCollapseButton);
所以我有几个可能性,但我需要帮助获得"前一行,然后取消颜色"
欢呼
如果我理解正确,您只是想取消选择DataGrid
中选定的行,当一行从第二个波段(无论那是什么)中被选中时。从DataGrid
中删除选择的一种简单方法是将SelectedItem
属性设置为null
:
<DataGrid Name="DataGrid" ItemsSource="{Binding Items}" ... />
然后在后面的代码中,当选择另一行时(可能在SelectionChanged
事件处理程序中),您可以简单地调用:
private void SecondBandSelectionChanged(object sender, SelectionChangedEventArgs e)
{
DataGrid.SelectedItem = null;
}