我有一个带状的WPF DataGrid,如果选择顶部波段,该行将变为蓝色,表示它是selectedRow(默认情况下)。但是,当用户然后从第二个波段中选择一行时,我希望顶部波段的蓝色消失,因为这意味着很难发现您在层次结构中进一步选择的行。
这可以通过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);
所以我有几种可能性,但我需要帮助才能获得“前一行然后取消颜色”
干杯
答案 0 :(得分:0)
如果我理解正确,您只想在第二个频段中选择一行时取消选择DataGrid
中的所选行(无论是什么)。从DataGrid
中删除选择的一种简单方法是将SelectedItem
属性设置为null
:
<DataGrid Name="DataGrid" ItemsSource="{Binding Items}" ... />
然后在代码后面,当选择另一行时(可能在SelectionChanged
事件处理程序中),你可以简单地调用它:
private void SecondBandSelectionChanged(object sender, SelectionChangedEventArgs e)
{
DataGrid.SelectedItem = null;
}