我有一個WinForm和幾個屬性設置它。
例如:姓名,地址在表格上被接受。
(以實際的例子很多屬性)重構Form.howDialog()代碼到MVP
當前的實現在某種程度上類似於
frmName frmView = new frmName(); //frmName is WINFORM
frmView.Name= "ABC"; //any valid string or read this from file
frmView.Address="SomeAddress"; //any valid address or read this from file
if (frmView.ShowDialog() == DialogResult.OK)
{
//OK CLICK PROCESS and
// get new values edited by user
string name = frmView .Name;
string address = frmView.Address;
doProcessing(name,address);
}
else{
//Ignore cancel click..
}
我如何將它轉換爲一個基於MVP WinForm應用程序。
還需要重構的的ShowDialog()做演示/型號
的處理(說不上來究竟在何處做)?
還需要避免在窗體本身上編寫代碼。(被動查看)
謝謝所有。
thx回答。 也請你解釋處理錯誤的部分.. (第3段..「在某些情況下......」) – Amitd 2010-08-09 11:41:22
@Amitd:在我的答案的代碼示例中,用戶請求被轉發給演示者*關閉*對話框。如果該請求導致錯誤,該怎麼辦?例如,同一名稱和地址已經被處理並保存在某個地方。從對話框中顯示錯誤並允許用戶更改其名稱或地址,而不是必須打開* new *對話框才能重試。您可以通過將演示者傳遞到對話框中,讓它自己發出請求,並且只有在*不會導致錯誤時才關閉它。 – Rich 2010-08-09 11:55:32
@Rich:哦,好的。所以我需要讓主持人成爲視圖的屬性,而不是在視圖內部創建新的主持人? – Amitd 2010-08-09 12:51:21