DataGridのItemsSourceにViewModelの何かしらコレクションをバインドしていると思いますので、
そのコレクション要素のメンバーにIsSelectedのような名前のbool型のプロパティを持つようにして
各行単位で選択状態を設定、保持するようにします。
MVVMでおなじみのプロパティ変更通知もきちんと実装しておいてください。
それから、DataGridで複数選択が有効になるようにSelectionModeをExtendedに設定し、
DataGridRowのIsSelectedプロパティとコレクション要素のメンバーのIsSelectedプロパティをTwoWayでバインドすればViewModel側から選択状態を制御できると思います。
XAML
1<DataGrid SelectionMode="Extended">
2 <DataGrid.RowStyle>
3 <Style TargetType="{x:Type DataGridRow}" BasedOn="{StaticResource {x:Type DataGridRow}}">
4 <Setter Property="IsSelected" Value="{Binding IsSelected,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/>
5 <!--もし、ReactivePropertyを使っているならこっち-->
6 <!--<Setter Property="IsSelected" Value="{Binding IsSelected.Value,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/>-->
7 </Style>
8 </DataGrid.RowStyle>
9</DataGrid>
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/08/15 08:44