WPF MVVM DATAGRID select 或 deselect 所有行

WPF MVVM DATAGRID select or deselect all rows

这是我的 DataGrid,我如何知道用户是否选择或取消选择了 DataGrid 的所有行?

谢谢

        <DataGrid ItemsSource="{Binding Dati_Viag}" SelectedItem="{Binding SelectDat}" Style="{DynamicResource ST_DataGrid}" 
                  CellStyle="{DynamicResource St_DataGridCellStyle}" SelectionMode="Extended" Name="Dg_Dati" >
        <DataGrid.Columns>
            <DataGridTextColumn x:Name="col_A" Binding="{Binding Path=A}" Header="A" Width="250" />
            <DataGridTextColumn x:Name="col_U" Binding="{Binding Path=B}" Header="B" Width="250" />
            <DataGridTextColumn x:Name="col_K" Binding="{Binding Path=C}" Header="C"  Width="250" />
        </DataGrid.Columns>
    </DataGrid>

在您的视图模型中公开 属性 IsSelected,并将其绑定到 DataGrid:

<DataGrid.RowStyle>
    <Style TargetType="DataGridRow">
        <Style.Triggers>
            <Trigger Property="IsSelected"
                        Value="{Binding IsSelected, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}">
                <Setter Property="BorderBrush"
                        Value="Blue" />
                <Setter Property="BorderThickness"
                        Value="2" />
            </Trigger>
        </Style.Triggers>
    </Style>
</DataGrid.RowStyle>

完成此操作后,您可以使用交互式触发器来调用您的视图模型 Command 一旦项目 selected/deselected:

<ie:Interaction.Triggers> <ie:EventTrigger EventName="SelectionChanged"> <ie:InvokeCommandAction Command="{Binding SelectedItemChangedCommand}"/> </ie:EventTrigger> </ie:Interaction.Triggers>

在里面可以做简单的计算,比如:

var allRowsSelected = MyItems.All(x => x.IsSelected)