c# - 如何禁用DataGrid的 'Select All'按钮

标签 c# wpf xaml datagrid user-controls

是否可以禁用WPF DataGrid左上角的“全选”按钮?

最佳答案

在使用Snoop分析我放在一起的测试应用程序的可视树之后,我使用DataGrid_Loaded事件提出了这个解决方案):

private void TheGrid_Loaded(object sender, RoutedEventArgs e) {
    var dataGrid = (DataGrid)sender;
    var border = (Border)VisualTreeHelper.GetChild(dataGrid, 0);
    var scrollViewer = (ScrollViewer)VisualTreeHelper.GetChild(border, 0);
    var grid = (Grid)VisualTreeHelper.GetChild(scrollViewer, 0);
    var button = (Button)VisualTreeHelper.GetChild(grid, 0);
    button.IsEnabled = false;
}
可能有一个更优雅的仅XAML解决方案,但这是首先想到的,而且似乎运行良好(显然我也没有进行任何异常处理)。
注意:我并未尝试禁用/重新启用DataGrid,以确保“全选”按钮保持禁用。如果它没有保持禁用状态,那么您可能还希望挂接到DataGrid_IsEnabledChanged事件。
希望这可以帮助!!

关于c# - 如何禁用DataGrid的 'Select All'按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2817921/

相关文章:

c# - 如何向 NET Core 2.0 的 SignalR alpha 上的所有客户端发送消息

wpf - 当存在基于触发器隐藏显示元素的复杂数据模板时,我的 ListView 或 ListBox 控件大小不会缩小?

.net - 调用上下文菜单打开

ios - 找不到命名空间中的Xamarin.Forms类(仅在iOS上)

wpf - 停止 WPF 图表颜色在刷新/更新时循环

c# - 将 90000 个 XElement 添加到 XDocument

c# - Asp.Net MVC 路由不接受 & 在路由中

c# - ThreadStatic 和同步

c# - Caliburn NotifyOfPropertyChanged : System. InvalidCastException

c# - 将 ListBox 的 ItemsSource 设置为其包含类的属性