3

私のコントロールは WPF DataGrid を使用します。左上の空のヘッダーをクリックすると、すべての行が選択されます。これは DataGrid の標準部分であり、私が追加したものではありません。

ただし、この「ボタン」が DataGrid にフォーカスしていないため、ユーザーは問題を抱えています。どうすればこれを修正できますか?

System.Windows.Controls.DataGrid

編集: これは、私が話している DataGrid ボタンの Excel 版です。これは真のボタンではなく、ある種のヘッダーです。

ここに画像の説明を入力

4

2 に答える 2

4

スヌープを見ると、このボタンに気づくことができます。

ここに画像の説明を入力

したがってClick、このボタンのイベントにイベント ハンドラーを記述でき、このハンドラーでグリッドにフォーカスできます。

private void myGrid_Loaded(object sender, RoutedEventArgs e)
{
    DataGrid dg = sender as DataGrid;
    Border border = VisualTreeHelper.GetChild(dg, 0) as Border;
    ScrollViewer scrollViewer = VisualTreeHelper.GetChild(border, 0) as ScrollViewer;
    Grid grid = VisualTreeHelper.GetChild(scrollViewer, 0) as Grid;
    Button button = VisualTreeHelper.GetChild(grid, 0) as Button;

    if (button != null && button.Command != null && button.Command == DataGrid.SelectAllCommand)
    {
        button.Click += new RoutedEventHandler(button_Click);
    }         
}

void button_Click(object sender, RoutedEventArgs e)
{     
    myGrid.Focus();           
}
于 2013-01-24T21:14:17.850 に答える