編輯:接受克里斯霍姆斯的迴應,但總是準備重構,如果有人想出更好的方法!謝謝!模型視圖演示者,如何在視圖之間傳遞實體?
用MVP做一些winforms什麼是將實體傳遞給另一個視圖的最佳方式。
假設我有一個CustomerSearchView/Presenter
,在doubleClick上我想顯示CustomerEditView/Presenter
。我不希望我的觀點知道模型,所以我不能創建一個參數爲ICustomer
的ctor。
我的反射會,
CustomerSearchView
創建一個新的CustomerEditView
,它創造它自己的主持人。 然後我CustomerSearchView
會做這樣的事情:
var customerEditView = new CustomerEditView();
customerEditView.Presenter.Customer = this.Presenter.SelectedCustomer;
其他可行的方法是一個CustomerDTO
類,並作出CustomerEditView
接受那些CustomerDTO
之一,但我認爲這是一個很大的工作,簡單的東西。
對不起,基本的問題,但所有的例子我能找到從來沒有達到這一點,這是一個棕地項目,到目前爲止,是給我頭痛所使用的方法...
您在上面拼寫爲「演示者」爲「演示者」。 – 2009-02-10 20:57:13
好,就像我說的,除了你使用一種方法,而不是一個屬性來設置客戶。謝謝。 – pmlarocque 2009-02-11 13:43:55
區別在於誰有什麼責任。在您的示例中,設置視圖代碼中的客戶意味着視圖知道如何獲得客戶。這應該留給主持人。 – 2009-02-11 16:06:22