我在WPF中有一个Datagrid。我添加了一个复选框列,如下所示:
<DataGridTemplateColumn>
<DataGridTemplateColumn.Header>
<CheckBox Name="CheckALL" IsChecked="{Binding IsCheckedAll, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
</DataGridTemplateColumn.Header>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<CheckBox Name="chkSelect" IsChecked="{Binding IsSelected, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
现在,在行中的复选框中触发了属性更改事件,但是我还希望在单击标题复选框时选中所有复选框。
单击“标题”复选框时,在编写如下代码时选中所有复选框:
<DataTemplate>
<CheckBox Name="chkSelect" IsChecked="{Binding IsChecked, Mode=OneWay, ElementName=CheckALL, UpdateSourceTrigger=PropertyChanged}"/>
</DataTemplate>
但同时要获得这两个功能。 请帮帮我
答案 0 :(得分:0)
尝试这样的事情:
<Checkbox Name="CheckALL">
<i:Interaction.Triggers>
<i:EventTrigger EventName="SelectionChanged">
<i:InvokeCommandAction Command="{Binding CheckColumns}" CommandParameter="{Binding ElementName=hereNameOfGrid}"/>
</i:EventTrigger>
</i:Interaction.Triggers>
</Checkbox>
现在你需要在你的代码中使用一个如下命令:
public void CheckColumns(object _grid)
{
GridView tempGrid = _grid as GridView;
foreach (var item in tempGrid.Columns)
{
item.IsChecked = false;
}
}
这样的事情应该有用。这不是有效的代码,只是提示解决方案!