1

我正在使用 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,前面有一列 CheckBox。现在我正在寻找的是一种选择多行并单击一个复选框的方法,然后检查所有选定行中的复选框。

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

4

1 回答 1

0

我最近不得不使用 DevExpress WPF GridControl 解决这个确切的问题。对于任何一个网格,似乎都没有开箱即用的方法来执行此操作。

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

如果您需要更多信息,请告诉我。

于 2012-11-26T23:00:59.080 回答