使用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>

最新文章

  1. POJ3070 Fibonacci[矩阵乘法]
  2. AutoCAD系统变量一览表
  3. 微信内置浏览器WebApp开发,踩坑 &#183; Issue #31 &#183; maxzhang/maxzhang.github.com &#183; GitHub
  4. Android ViewPager使用详解
  5. 【转】图片IMG标记的alt属性和title属性的使用
  6. unity3d游戏物体跟着鼠标方向移动
  7. Java8 map和reduce
  8. Android:实现仿 美团/淘宝 多级分类菜单效果
  9. 有向图强连通分支的Tarjan算法讲解 + HDU 1269 连通图 Tarjan 结题报告
  10. java基础(11) -JDBC
  11. 编程中&amp;和&amp;&amp;的区别
  12. C语言之输入月收入,输出该月应纳税额-2019(简易版)
  13. Vue echarts
  14. Django05-模型系统model
  15. matlab练习程序(点云下采样)
  16. mysql 安装问题三:FATAL ERROR: please install the following Perl modules before executing ./scripts/mysql_install_db: Data::Dumper
  17. Springboot Download file
  18. 树莓派做路由器_配置防火墙filter和nat转发_转载
  19. Oracle与MySQL区别
  20. DataSnap下的分包获取

热门文章

  1. union 时只能查出一个表中的信息,另一个表只能查出字段
  2. 怎么使用linux命令重启服务器
  3. HTML &lt;td&gt; 标签的 rowspan 属性
  4. XGBoost、LightGBM的详细对比介绍
  5. Performance Testing 入门小结
  6. python3 第九章 - 数据类型之Number(数字)
  7. Android更新主线程UI的两种方式handler与runOnUiThread()
  8. 安装Java和Pycharm的步骤
  9. redis数据类型-有序集合
  10. 珍爱生命,远离JS=&gt;JS避坑记