【发布时间】:2011-10-07 17:02:13
【问题描述】:
我有一个简单的示例,我的示例有 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();
...
}
我想知道我的样本有误? 我可以从其视图模型中的视图中获得一个实例吗? 如果我的示例错误,我该如何解决(将对象发送到其他窗口并在编辑后获取它)?
【问题讨论】: