2012-12-15 42 views

回答

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; 
       } 
      } 
    }  

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

相关问题