2010-11-22 42 views
1

演示階級基礎在文章Build your own CAB Part #8 - Assigning Responsibilities in a Model View Presenter Architecture,對筆者說:我應該使用System.Windows.Forms的在MVP

,但不允許在任何System.Windows類型 任何引用。從Presenter類構造 命名空間。


我對你上面的話的一些問題。假設我想在UI中構建樹,並且對於每個樹節點我需要附加一些信息,所以IView應該向接口AddTreeNode暴露Presenter,因此Presenter可以調用此接口在樹上添加treenode,對吧?我認爲AddTreeNode接口的參數應該像(TreeNode newNode,TreeNode Parent),然後在Presenter類中它應該添加System.Windows.Forms作爲參考,我應該如何處理這種情況?

回答

0

的IVIEW應該暴露接口AddTreeNode演示者

不是真的。我認爲IView應該公開Presenter可以調用的事件來傳遞模型數據。視圖層實現這些事件並可以接收數據並調用任何控制方法(AddTreeNode等)。

+0

假設有一個事件RefreshTheTree由TestView公開,它實現了IView接口,然後在Presenter中訂閱了這個事件,並且在事件處理方法中,它從Model中獲取數據,那麼我應該怎麼做才能添加treenode根據模型的數據? – 2010-11-23 01:40:18

+0

@Carlos_Liu有很多方法。 F.E.你可以在IView addNode(modelNode節點)中定義一個方法並在Presenter中調用它。以便TestView將採用modelNode並在此方法內添加treenode。因此,只有在TestView中才允許對UI控件的所有訪問。 modelnode是一個模型實體,它攜帶您想要添加爲樹節點的信息。所以你再也不需要暴露出TestView類的UI信息。 – Arseny 2010-11-23 07:28:47

相關問題