4

I microsof Excel では、セルまたはセルのグループが選択されると、列のヘッダーと行のヘッダーが強調表示されます。wpd DataGrid で同様の機能を実装するにはどうすればよいですか?

イベントを処理する必要があると思いますDataGrid.SelectionChangedが、どうすればよいかわかりません。どんな助けでも大歓迎です。

4

1 に答える 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 を設定することもできます。

于 2012-12-15T12:05:46.543 に答える