После использования 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.
Надеюсь, это поможет !!