4
我是microsoft Excel,当选中一个单元格或一组单元格时,colums的标题和行标题将突出显示。我如何在wpd DataGrid中实现类似的功能?当单元格被选中时,如何突出显示DataGrid的ColumnHeader和RowHeader?
我认为我应该处理DataGrid.SelectionChanged
事件,但我不知道如何继续。任何帮助表示赞赏。
我是microsoft Excel,当选中一个单元格或一组单元格时,colums的标题和行标题将突出显示。我如何在wpd DataGrid中实现类似的功能?当单元格被选中时,如何突出显示DataGrid的ColumnHeader和RowHeader?
我认为我应该处理DataGrid.SelectionChanged
事件,但我不知道如何继续。任何帮助表示赞赏。
我认为最简单的方法是使用SelectedCellsChanged事件。
检查我的例子:
XAML代码:
<DataGrid Name="myData"
AutoGenerateColumns="True"
SelectionMode="Extended"
SelectionUnit="Cell"
SelectedCellsChanged="myData_SelectedCellsChanged"
/>
代码隐藏:
private void myData_SelectedCellsChanged(object sender, SelectedCellsChangedEventArgs e)
{
foreach (var item in myData.Columns)
{
item.HeaderStyle = null;
}
if (myData.SelectedCells != null && myData.SelectedCells.Count != 0)
{
Style styleSelected = new Style();
styleSelected.Setters.Add(new Setter(Border.BackgroundProperty, new SolidColorBrush(Colors.Orange)));
foreach (var item in myData.SelectedCells)
{
item.Column.HeaderStyle = styleSelected;
}
}
}
您还可以设置Border.BorderBrushProperty和Border.BorderThicknessProperty在styleSelected如果你想垂直列之间的线。