c# - WPF DataGrid 左上角选择所有标题按钮不聚焦网格

标签 c# .net wpf datagrid

我的控件使用 WPF DataGrid。如果您单击左上角的空标题,它会选择所有行。这是 DataGrid 的标准部分,不是我添加的任何内容。

但是,我的用户遇到了麻烦,因为这个“按钮”没有聚焦 DataGrid。我该如何解决这个问题?

System.Windows.Controls.DataGrid

编辑:这是我正在谈论的 DataGrid 按钮的 Excel 模拟。它不是真正的按钮,而是某种标题:

enter image description here

最佳答案

如果您查看 Snoop你可以注意到这个按钮。

enter image description here

所以你可以为这个按钮编写事件处理程序到 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();           
}

关于c# - WPF DataGrid 左上角选择所有标题按钮不聚焦网格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14506174/

相关文章:

c# - 如何直接读取 xml 文件以获取 XElement 值?

c# - 如何从前端 (Angular) 向 C# .net datetime (webAPI) 发送日期?

c# - 日期时间序列化器省略毫秒?

c# - UserControl和MainWindow之间的关系

c# - 如何获得事件屏幕尺寸?

c# - WPF ContextMenu 单击时消失

c# - 用于发送短信和电子邮件通知的 Azure 服务

c# - 对于具有不同行为的多个接口(interface)使用哪种设计模式

c# - MS BotFramework v4 中的对话框将其变量值保留在新对话中

.net - C# 中的 Java RuntimeException 等价物?