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>

これにより、前面に CheckBox の列を持つ DataGrid が表示されます。今私が探しているのは、複数の行を選択して 1 つの CheckBox をクリックすると、選択したすべての行の CheckBox がチェックされる方法です。

誰かにアイデアや例がありますか?

4

1 に答える 1

0

最近、DevExpress WPF GridControl を使用して、この正確な問題を解決する必要がありました。どちらのグリッドでもこれを行うためのすぐに使える方法はないようです。

列の PreviewKeyDown イベントを使用して、スペース キーの押下を検出しました。次に、選択したすべてのセルを繰り返し処理し、それらの値をフォーカスされたセルの値に設定します。望ましい結果が得られたので、代わりに PreviewMouseUp イベントを使用して同様のことができると思います。

さらに情報が必要な場合はお知らせください。

于 2012-11-26T23:00:59.080 に答える