繁体   English   中英

WPF DataGrid复选框全选并获取所选行

[英]WPF DataGrid CheckBox Select All And Get Selected Rows

我在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>

但是同时要获得两个功能。 请帮我

尝试这样的事情:

<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;
        }    
}

这样的事情应该起作用。 这不是工作代码,仅是解决方案的提示!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM