wpf datagrid复选框列标题取消/选择全部
我正在尝试创建一个带有复选框列的datagrid,该列的标题带有一个复选框,用于选择和取消选择行的复选框。同时,我也试图做到这一点,没有背后的代码。 到目前为止,我已经取得了部分成功,因为我在绑定中使用了datagrid的标记作为中间人,并且可以使用数据触发器从标题复选框中取消/选择行的复选框,但是一旦我选中一行,该行中的绑定将“终止”,并且不再受标题的影响。另外,我已经用单向绑定代替数据触发器进行了尝试,并得到了相同的结果。。。 是否有人知道一种方法可以保持绑定的活性,或者使用另一种方法来实现我仅在XAML中寻找的效果 标题:wpf datagrid复选框列标题取消/选择全部,wpf,xaml,binding,wpfdatagrid,Wpf,Xaml,Binding,Wpfdatagrid,我正在尝试创建一个带有复选框列的datagrid,该列的标题带有一个复选框,用于选择和取消选择行的复选框。同时,我也试图做到这一点,没有背后的代码。 到目前为止,我已经取得了部分成功,因为我在绑定中使用了datagrid的标记作为中间人,并且可以使用数据触发器从标题复选框中取消/选择行的复选框,但是一旦我选中一行,该行中的绑定将“终止”,并且不再受标题的影响。另外,我已经用单向绑定代替数据触发器进行了尝试,并得到了相同的结果。。。 是否有人知道一种方法可以保持绑定的活性,或者使用另一种方法来实现
<CheckBox IsChecked="{binding RelativeSource={RelativeSource AncestorType={x:Type DataGrid}, Mode=FindAncestor}, Path=Tag}"/>
列模板:
<CheckBox>
<CheckBox.Style>
<Style TargetType="{x:Type CheckBox}">
<Style.Triggers>
<DataTrigger Binding="{binding RelativeSource={RelativeSource AncestorType={x:Type DataGrid}, Mode=FindAncestor}, Path=Tag}" Value="True">
<Setter Property="IsChecked" Value="True"/>
</DataTrigger>
<DataTrigger Binding="{binding RelativeSource={RelativeSource AncestorType={x:Type DataGrid}, Mode=FindAncestor}, Path=Tag}" Value="False">
<Setter Property="IsChecked" Value="False"/>
</DataTrigger>
</Style.Triggers>
</Style>
</CheckBox.Style>
</CheckBox>
这实际上是解决这个问题的好主意。我不明白为什么那不管用 也就是说,有几件事可以尝试: 通常将标题复选框和行复选框放置在窗口上(不在数据网格内),以查看其效果 另一个选项是尝试命名有关绑定失败原因的任何消息的标题复选框(例如
Windows>Output;它可能显示为空,但只是向上滚动)
您还可以使用假的ValueConverter
尝试查看绑定是否仍在启动。谢谢您的评论!由于各种问题,我目前无法检查您的建议,但我想推测一下。我已经尝试检查了输出,但没有发现绑定错误,我认为在列中使用元素名存在问题,不属于可视树的一部分,或者其他什么。。。不管怎样,我还是要试一试。我认为当我检查一个单独的行时,我与数据触发器相矛盾,因此从那时起它被忽略。我是WPF的新手,所以。。。这合乎逻辑/可能吗?