Wpf DataGridCheckBoxColumn 问题
2024-09-02 05:02:49
使用DataGridCheckBoxColumn binding一个布尔属性时,发现无法checkbox无法勾选, 并且HeaderTemplate中的checkbox无法获取到viewmodel的IsSelectAll属性,
最后通过下列方式解决。注意放大的部分
<DataGridCheckBoxColumn
x:Name="checkColumn"
Width=""
Binding="{Binding Path=IsSelected, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
CanUserSort="False"
IsReadOnly="False">
<DataGridCheckBoxColumn.ElementStyle>
<Style TargetType="CheckBox" />
</DataGridCheckBoxColumn.ElementStyle>
<DataGridCheckBoxColumn.HeaderTemplate>
<DataTemplate>
<CheckBox IsChecked="{Binding Path=DataContext.IsSelectAll, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type DataGrid}}}" />
</DataTemplate> </DataGridCheckBoxColumn.HeaderTemplate>
</DataGridCheckBoxColumn>
方案二:
通过资源绑定
public class BindingProxy : Freezable
{
#region Overrides of Freezable protected override Freezable CreateInstanceCore()
{
return new BindingProxy();
} #endregion public object Data
{
get { return (object)GetValue(DataProperty); }
set { SetValue(DataProperty, value); }
} // Using a DependencyProperty as the backing store for Data. This enables animation, styling, binding, etc...
public static readonly DependencyProperty DataProperty =
DependencyProperty.Register("Data", typeof(object), typeof(BindingProxy), new UIPropertyMetadata(null));
}
添加资源
<wpf:BindingProxy x:Key="proxy" Data="{Binding}" />
<DataGridTemplateColumn Visibility="{Binding Data.CanChooseMorePatients,Source={StaticResource proxy}, UpdateSourceTrigger=PropertyChanged, Converter={StaticResource CollapsedConverter}}" >
<DataGridTemplateColumn.Header>
<CheckBox IsChecked="{Binding Path=Data.IsAllPatientSelected,UpdateSourceTrigger=PropertyChanged, Source={StaticResource proxy} }" />
</DataGridTemplateColumn.Header>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<CheckBox IsChecked="{Binding IsPatientSelected,Mode=OneWay,UpdateSourceTrigger=PropertyChanged}" wpf:CheckboxHelper.PreMouseLeftButtonDownCommand="{Binding CheckedClickCommand}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate> </DataGridTemplateColumn>
最新文章
- POJ3070 Fibonacci[矩阵乘法]
- AutoCAD系统变量一览表
- 微信内置浏览器WebApp开发,踩坑 &#183; Issue #31 &#183; maxzhang/maxzhang.github.com &#183; GitHub
- Android ViewPager使用详解
- 【转】图片IMG标记的alt属性和title属性的使用
- unity3d游戏物体跟着鼠标方向移动
- Java8 map和reduce
- Android:实现仿 美团/淘宝 多级分类菜单效果
- 有向图强连通分支的Tarjan算法讲解 + HDU 1269 连通图 Tarjan 结题报告
- java基础(11) -JDBC
- 编程中&;和&;&;的区别
- C语言之输入月收入,输出该月应纳税额-2019(简易版)
- Vue echarts
- Django05-模型系统model
- matlab练习程序(点云下采样)
- mysql 安装问题三:FATAL ERROR: please install the following Perl modules before executing ./scripts/mysql_install_db: Data::Dumper
- Springboot Download file
- 树莓派做路由器_配置防火墙filter和nat转发_转载
- Oracle与MySQL区别
- DataSnap下的分包获取