热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

C#学习教程:WPFDatagrid“全选”按钮–“全部取消选择”?分享

WPFDatagrid“全选”按钮–“全部取消选择”?我想知道是否可以在数据网格左上角的“全选”按钮中添加function,以便它也可以取消选择所有行?我有一个方法附加

WPF Datagrid“全选”按钮 – “全部取消选择”?

我想知道是否可以在数据网格左上角的“全选”按钮中添加function,以便它也可以取消选择所有行? 我有一个方法附加到一个按钮来执行此操作,但如果我可以从全选按钮触发此方法,以保持function在视图的相同部分,这将是很好的。 这个“全选”按钮是否可以添加代码,如果是,那么如何进入按钮? 我找不到任何例子或建议。

好好经过大量搜索后我发现了怎么做到了Colin Eberhardt的按钮,这里:

在附加行为的控件模板中设置难以触及的元素

然后我在他的类中扩展了“Grid_Loaded”方法,为按钮添加了一个事件处理程序,但是请记住首先删除默认的“Select All”命令(否则,在运行我们添加的事件处理程序之后,命令就会运行)。

///  /// Handles the DataGrid's Loaded event. ///  /// Sender object. /// Event args. private static void Grid_Loaded(object sender, RoutedEventArgs e) { DataGrid grid = sender as DataGrid; DependencyObject dep = grid; // Navigate down the visual tree to the button while (!(dep is Button)) { dep = VisualTreeHelper.GetChild(dep, 0); } Button button = dep as Button; // apply our new template ControlTemplate template = GetSelectAllButtonTemplate(grid); button.Template = template; button.Command = null; button.Click += new RoutedEventHandler(SelectAllClicked); } ///  /// Handles the DataGrid's select all button's click event. ///  /// Sender object. /// Event args. private static void SelectAllClicked(object sender, RoutedEventArgs e) { Button button = sender as Button; DependencyObject dep = button; // Navigate up the visual tree to the grid while (!(dep is DataGrid)) { dep = VisualTreeHelper.GetParent(dep); } DataGrid grid = dep as DataGrid; if (grid.SelectedItems.Count  

基本上,如果没有选择任何行,它'选择全部',如果不选择它'取消选择全部'。 它的工作方式非常像你期望选择/取消选择所有工作,我不敢相信他们没有让命令默认这样做,说实话,也许在下一个版本中。

希望这对任何人都有帮助,干杯,威尔

我们可以添加一个命令绑定来处理selectall事件。

请参阅: 全选的事件:WPF Datagrid

上述就是C#学习教程:WPF Datagrid“全选”按钮 – “全部取消选择”?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注---编程笔记


推荐阅读
author-avatar
Borisyu
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有