我已經添加了一個DialogService以打開一個ProductView,到目前爲止ShowDetailDialog()按預期工作。如何解決不關閉.Close()?
問題:
我打電話Close()
上的ProductView,認爲不會被關閉。我通過在調用對話框服務關閉方法時設置一個斷點來調試此問題。
當我介紹代碼時,null檢查顯示productView爲null,這可以防止調用Close()
。
有沒有人知道爲什麼productView爲null? (雖然它顯示在視圖上的數據)
DialogService:(承載顯示和關閉方法)
namespace MongoDBApp.Services
{
class DialogService : IDialogService
{
Window productView = null;
ProductView _productView;
public DialogService()
{
_productView = new ProductView();
}
public void CloseDetailDialog()
{
if (productView != null)
productView.Close();
}
public void ShowDetailDialog()
{
_productView.ShowDialog();
}
}
}
ProductViewModel:(ProductVM的摘要,呼籲SaveCommand close方法)
private void SaveProduct(object product)
{
_dialogService.CloseDetailDialog();
Messenger.Default.Send<ProductModel>(SelectedProduct);
}
CustomerOrdersViewmodel:(凡ShowDetailDialog()最初被稱爲)
private void EditOrder(object obj)
{
Messenger.Default.Send<ProductModel>(SelectedProduct);
_dialogService.ShowDetailDialog();
}
你在哪裏調用'ShowDetailDialog'? –
在CustomerOrdersVM中,我會立即發佈。 ShowDetailDialog正在工作,只是因爲某些原因沒有關閉。 –
當使用ShowDialog時,你需要設置DialogResult屬性。 'Close'方法將用於非模態窗口。 –