如何规划企业网站,wordpress 添加搜索,百度提升优化,南昌seo网站管理制作一个根表头为CheckBox可全选、全不选的列表#xff0c;且可根据条目自动调整CheckBox的状态#xff08;选中、不选、部分选中#xff09;。
本来是想用DataGrid做一个CheckBox的列用于勾选其中的某些行#xff0c;当时做出来之后想着添加一个全选、全否的功能。做两个…制作一个根表头为CheckBox可全选、全不选的列表且可根据条目自动调整CheckBox的状态选中、不选、部分选中。
本来是想用DataGrid做一个CheckBox的列用于勾选其中的某些行当时做出来之后想着添加一个全选、全否的功能。做两个按钮觉得太丑就想着在标题栏做一个CheckBox实现此功能。开始不用会用模板网上查了些资料可以用以下方式实现
1、通过DatGridTemplateColumn修改表头模板实现 DataGridTemplateColumnDataGridTemplateColumn.HeaderTemplateDataTemplateCheckBox x:NameCkB1 ClickButton_Click_2_Header Tag{Binding A4, ModeTwoWay} IsThreeStateTrue/CheckBox/DataTemplate/DataGridTemplateColumn.HeaderTemplateDataGridTemplateColumn.CellTemplateDataTemplateCheckBox IsChecked{Binding A4, ModeTwoWay,UpdateSourceTriggerPropertyChanged} ClickButton_Click_2_Body/CheckBox/DataTemplate/DataGridTemplateColumn.CellTemplate/DataGridTemplateColumn
2、根据DataGridCheckBoxColumn修改表头模板实现 DataGridCheckBoxColumn DataGridCheckBoxColumn.HeaderTemplate DataTemplateCheckBox ClickCheckBox_Click_3_Header/CheckBox/DataTemplate/DataGridCheckBoxColumn.HeaderTemplateDataGridCheckBoxColumn.ElementStyleStyle TargetTypeCheckBoxSetter PropertyIsChecked Value{Binding A5}/Setter/Style/DataGridCheckBoxColumn.ElementStyle/DataGridCheckBoxColumn
实现显示之后可根据Click、Checked、UnCkecked事件控制全选与全否。
但是如何实现表头状态的自动调整没啥思路网上搜了一下资料
以下两种实现方式
1、给表头控件添加空间名称使用时根据名称找到控件再根据动作调整控件状态。
如查找“CKB1“控件通过VisualTreeHelper CheckBox cb GetVisualChildCheckBox(this.TestDG, v v.Name CkB1); public T GetVisualChildT(DependencyObject parent, FuncT, bool predicate) where T : Visual{int numVisuals VisualTreeHelper.GetChildrenCount(parent);for (int i 0; i numVisuals; i){DependencyObject v (DependencyObject)VisualTreeHelper.GetChild(parent, i);T child v as T;if (child null){child GetVisualChildT(v, predicate);if (child ! null){return child;}}else{if (predicate(child)){return child;}}}return null;}