这是我的数据网格,我怎么知道用户是选择还是取消选择了数据网格的所有行?
谢谢
<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
:
<ie:Interaction.Triggers>
<ie:EventTrigger EventName="SelectionChanged">
<ie:InvokeCommandAction Command="{Binding SelectedItemChangedCommand}"/>
</ie:EventTrigger>
</ie:Interaction.Triggers>
您可以在其中进行简单的计算,例如:
var allRowsSelected = MyItems.All(x => x.IsSelected)