MVVM を介して WPF に DataGrid を設定します。DataGrid に行と列を作成するための 4 つのプロパティを持つビジネス オブジェクトがあります。
<DataGrid CanUserAddRows="True" ItemsSource="{Binding Path=PersonsInfo}" AutoGenerateColumns="False"
CanUserDeleteRows="True" CanUserReorderColumns="True"
CanUserSortColumns="True">
<DataGrid.Columns>
<DataGridTextColumn Header="Name" Binding="{Binding Path=Name}"/>
<DataGridTextColumn Header="Age" Binding="{Binding Path=Age}"/>
<DataGridTextColumn Header="Date Of Birth" Binding="{Binding Path=DateOfBirth}"/>
<DataGridTextColumn Header="Address" Binding="{Binding Path=Address}"/>
<DataGridTemplateColumn>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Grid>
<Button Content="Remove..." Margin="3" Command="{Binding Path=RemoveCommand}" />
</Grid>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
上記のコードでボタンをクリックすると、DataGrid からレコードを削除する必要があります。
そのため、ViewModel クラス内ではなく、ビジネス オブジェクト クラス内に Command を持つ必要があるという要件が必要です。
各行のボタンをクリックしている間に、対応する行を削除する必要があります。
したがって、ビジネス オブジェクト クラスには DataGrid のアイテムに関する情報がないため、ビジネス オブジェクト クラスでコマンドを実行して行を削除するために DataGrid で選択されているアイテムをどのように見つけることができますか?