当一个单元格被选中时,如何突出DataGrid的列标题和行标题?

4

我使用微软Excel时,当选中一个单元格或一组单元格时,列标题和行标题会突出显示。我如何在wpd DataGrid中实现类似的功能?

我认为我应该处理DataGrid.SelectionChanged事件,但我不知道该如何继续。任何帮助都将不胜感激。

1个回答

1
我认为最简单的方法是使用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;
                }
            }
  }       

如果您想在列之间设置垂直线条,可以在styleSelected中设置Border.BorderBrushProperty和Border.BorderThicknessProperty。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接