しばらく前に、このチュートリアルで MVVM パターンの学習を開始しました。MicroMvvm を使用しています。
EntityFramework モデルを使用した WPF プロジェクトがあります。ViewModel と XAML ビューを作成しました。データを DataGrid に表示したい (データを含む 2 つの列と 2 つのボタン列: 編集、削除)
<DataGrid Height="250" ItemsSource="{Binding Books}" AutoGenerateColumns="False" >
<DataGrid.Resources>
<DataTemplate x:Key="DeleteTemplate" >
<Button x:Name="DeleteButton" Command="{Binding DeleteBook, Mode=OneWay}" CommandParameter="{Binding}" >Delete</Button>
</DataTemplate>
</DataGrid.Resources>
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding Title}" Header="Book"/>
<DataGridTextColumn Binding="{Binding Author}" Header="Author"/>
<DataGridTemplateColumn CellTemplate="{StaticResource EditTemplate}" Header="Редактировать"/>
<DataGridTemplateColumn CellTemplate="{StaticResource DeleteTemplate}" Header="Удалить"/>
</DataGrid.Columns>
</DataGrid>
私のLibraryViewModel.csで
#region Commands
void DeleteBookExecute()
{
if (_books == null)
return;
//MessageBox.Show("This is delete button. Delete item id:" myMysticalObjectFromCommandParameter );
}
bool CanDeleteBookExecute()
{
return true;
}
public ICommand DeleteBook
{
get
{
return new RelayCommand(DeleteBookExecute, CanDeleteBookExecute);
}
}
ボタン (削除/編集) を押すと、現在のオブジェクトを削除/編集したい。MVVMでそれを行う方法がわかりません。
でできますCommand="{Binding DeleteBook, Mode=OneWay}" CommandParameter="{Binding}"
か?
正しい場合CommandParameter
、LibraryViewModel からデータを取得するにはどうすればよいですか?