ure*_*ema 14 wpf select user-controls datagrid
我想知道是否有禁用WPF DataGrid顶角的select all选项....这似乎只发生在我向WPF中的fixeddocument添加UserControl时.
提前致谢,
U.
Var*_*ain 31
有一个属性HeadersVisibility在DataGrid.它有四个值- ,All,Column,.RowNone
使用HeadersVisibility = All,您将获得SelectAll按钮.
使用HeadersVisibility = Column,您将只获得列.不是SelectAll Button或Row Headers来选择一个完整的行.
使用HeadersVisibility = Row,您将只获得Row标题以选择整行.不是SelectAll按钮或列.
有了HeadersVisibility = None,你什么也得不到.所有标题都将被隐藏.
我希望这可以帮助你.
在使用Snoop分析我放在一起的测试应用程序的Visual Tree之后,我使用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;
}
Run Code Online (Sandbox Code Playgroud)
可能有一个更优雅的XAML解决方案,但这是首先想到的,它似乎运行良好(我显然也没有做任何异常处理).
注意:我没有玩过禁用/重新启用DataGrid以确保select all按钮保持禁用状态.如果它没有保持禁用状态,那么您可能还想要挂钩DataGrid_IsEnabledChanged事件.
希望这可以帮助!!