我有一个简单的示例,我的示例有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();
}
}
并写入ProductlistViewModel中的editCommant:
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中从视图中获取实例吗? 如果我的Sample是错误的,我该怎么做这个解决方案(将一个对象发送到其他窗口并在编辑后得到它)?