在WPF Datagrid中处理多个选定的行

时间:2012-09-06 10:37:09

标签: wpf mvvm datagrid rows

我正在使用WPF(MVVM)DataGrid女巫看起来像这样:

<DataGrid x:Name="DataGrid1" 
                  ItemsSource="{Binding DataTable, UpdateSourceTrigger=PropertyChanged}" 
                  AutoGenerateColumns="False" 
                  SelectedItem="{Binding SelectedRow, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}">
            <DataGrid.Columns>
                <DataGridTemplateColumn Header="Active" CellTemplate="{StaticResource ActiveCheckBoxTemp}" />
                <DataGridTextColumn Binding="{Binding Path=ID}" Header="ID" MinWidth="100" IsReadOnly="True" />
                <DataGridTextColumn Binding="{Binding Path=Name}" Header="Name" MinWidth="100" />
            </DataGrid.Columns>

使用模板:

<DataTemplate x:Key="ActiveCheckBoxTemp">
                <Grid>
                    <CheckBox IsChecked="{Binding Path=Active, Mode=TwoWay}" HorizontalAlignment="Center" VerticalAlignment="Center"/>
                </Grid>
</DataTemplate>

这给了我一个DataGrid,前面有一个CheckBoxs颜色。 现在我正在寻找一种方法来选择多个行并单击一个CheckBox,然后检查所有选定行中的CheckBoxes。

有人对我有任何想法或例子吗?

1 个答案:

答案 0 :(得分:0)

我最近使用DevExpress WPF GridControl来解决这个问题。对于任何一个网格,似乎都没有开箱即用的方法。

我在列上使用PreviewKeyDown事件来检测按空格键。然后,我将迭代所有选定的单元格并将其值设置为聚焦单元格值。它给出了预期的结果,我猜你可以使用PreviewMouseUp事件做类似的事情。

如果您需要更多信息,请与我们联系。