私は、ソリューションをオンラインで検索するときにあまり目を向けることなく、このカスタム動作をデータグリッドに組み込む方法を見つけようとしてきました。
次のデータグリッドがあるとします(簡潔にするために一部のxamlは削除されています)。
<DataGrid ItemsSource="{Binding Items}" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTemplateColumn Width="auto">
<DataGridTemplateColumn.HeaderTemplate>
<DataTemplate>
<CheckBox />
</DataTemplate>
</DataGridTemplateColumn.HeaderTemplate>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<CheckBox IsChecked="{Binding Selected, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
各行のデータバインドされたオブジェクトにチェックボックスが正常にバインドされています。(注:値を変更するためにダブルクリックする必要がないように、DataGridTemplateColumn
ではなくを使用しています)。DataGridCheckBoxColumn
私が達成したいのは、ユーザーが行を選択したときに、チェックボックスをオンにする/データバインドされたオブジェクトのSelectedプロパティを更新する機能を持つことです。行全体を効果的にクリックして、チェックボックスのチェック済みプロパティを設定します。理想的には、コードビハインドを可能な限りクリーンに保とうとしているので、可能であればコードビハインドファイルなしでこれを実行したいと思います。
可能であれば、行をクリックすると、選択したプロパティが切り替わり、別のプロパティをクリックしても、新しいプロパティと同様に前のプロパティが選択されたままになるという機能が必要です。
どんな助けでも大歓迎です。