2012-11-19 62 views
0

我有一個使用MVVM模型的WPF應用程序。此外,我們確實需要使用ShowDialog()在Dialog()中顯示一些數據。爲此,我們在另一個類中調用另一個MainWindow方法,它將實際返回一個Window類型的對象。 MainWindow將通過調用ShowDialog()方法顯示該窗口。窗口類具有ViewModel,它將顯示對話框中顯示的數據。哪個是處理刪除數據場景的最佳位置?

我的問題是如何處理數據中不存在的情況下數據庫?

Window()或ViewModel(哪一個)的構造函數應該拋出異常?如果是,那麼什麼類型的異常?有沒有其他的方式來處理這種情況?

+2

你的用戶界面,窗口,以及是否調用的ShowDialog與否,不應該讓你的數據,以及是否存在或者不干擾MVVM。你應該分開你的UI和數據訪問邏輯 – Alan

+0

我想只有OP可以決定上面的註釋是否適用,但是如果你有一個數據訪問層並且該層沒有返回任何數據,聽起來可行的是你的UI應該知道這一點,並應該向用戶提出適當的通知。這取決於你是如何處理錯誤的,但顯然爲多個窗口編寫相同的錯誤處理彈出窗口將是一種浪費 - 我想你可以使用某種聚合器,它坐在MainWindow VM級別並截獲這些特殊情況並顯示彈出適當的消息 – Charleh

+0

嘗試更好地展示您的規範,從中顯示的信息的位置,如果是來自數據庫,則沒有問題,因爲來自數據庫,如果不是,您應該添加到數據庫。 –

回答

0

你沒有規劃用例,所以你不會得到最好的答案,因爲答案取決於你的用例,你的域和你的用戶。

也就是說,您希望用戶看到異常的可能性非常小,即使它是非常特殊的。更好的方法是顯示帶有信息的消息(即「沒有要顯示的項目」)或完全不顯示對話框。

HTH,
Berryl

相關問題