c# - 选择单元格时,如何突出显示 DataGrid 列标题和行标题?

标签 c# wpf datagrid

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

我想我应该处理 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;
                }
            }
  }       

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

关于c# - 选择单元格时,如何突出显示 DataGrid 列标题和行标题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13891780/

相关文章:

wpf - 有没有办法转换用作 ItemsSource 的集合的成员?

c# - WPF 虚拟化 Treeview 中的滚动错误

c# - 我如何为样式指定设计器数据上下文,以便 Resharper 找到我的属性?

WPF 数据网格 : How do I set columns to TextWrap?

c# - 滚动时 wpf datagrid 单元格样式问题

c# regex 解析 ical 格式的文件并用结果填充对象

c# - 通过事件处理程序发送参数?

WPF DataGridCheckBox列: how to hide the checkbox if the binding value is null?

c# - “无法使用实例引用访问成员,请改为使用类型名称来限定它”,而我确实使用类型名称

c# - LINQ 获取最接近的值?