У меня есть простой образец, который имеет 2 окна:
1-ProductlistView 2-ProductEditView (1-ProductlistViewModel 2-ProductEditViewModel)
Я хочу, чтобы пользователь мог выбрать продукт в моем ProductlistView и редактировать выбранный продукт в ProductEditView ... Я использую из этого кода в моем примере:
public Class ProductEditViewModel:ViewModelBase
{
private readonly ProductEditView View;
public ProductModel Model { get; set; }
public ProductEditViewModel(Product myproduct)
{
View = new ProductEditView { DataContext = this };
if(myproduct!= null) Model = myproduct;
}
private bool IsInDialogMode;
public bool? ShowDialog()
{
if (IsInDialogMode) return null;
IsInDialogMode = true;
return View.ShowDialog();
}
}
и напишите в мой editCommant в ProductlistViewModel:
private RelayCommand UpdateProductmdInstance;
public RelayCommand UpdateProductCommand
{
get
{
if (UpdateProductmdInstance!= null) return UpdateProductmdInstance;
UpdateProductmdInstance= new RelayCommand(a => OpenProductDetail(SelectedProduct), p => SelectedProduct!= null);
return UpdateProductmdInstance;
}
}
private void OpenProductDetail(Product product)
{
var ProductEditViewModel= new ProductEditViewModel(product);
var result = personDetailViewModel.ShowDialog();
...
}
Мне было интересно, что мой образец не так?
Могу ли я получить экземпляр из представления в его viewmodel?
Если мой образец неправильный, как я могу сделать это решение (отправить объект в другое окно и после редактирования получить его)?