簡體   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