我在左側面板中有一個拆分容器,是一個帶按鈕的用戶控件。在右側面板中是一個初始用戶控件,它將根據按下哪個按鈕而改變。我想知道的是,如何讓人們知道從泄漏面板的窗體在按鈕視圖的演示者的視圖x中繪製?c#中的多視圖(或分層視圖)的模型視圖展示器
4
A
回答
7
理論上,演示者應該有權訪問視圖,在這種情況下,應該從左側面板的視圖中通知演示者任何按鈕點擊,然後更新表格以在右側面板中顯示視圖。
這是如何完成取決於你的具體實現。體系結構模式是指導原則......沒有必須遵循的硬性和快速規則(除非您使用某種MVP庫,在這種情況下,您將受到該庫實現的限制)。
編輯:要回答以下你的問題,芯片...
同樣,這完全取決於您的實現。在某些情況下,擁有一個龐大的Presenter和數十個視圖可能是有意義的。在其他情況下,每個視圖都有一位演示者可能是有意義的。不過,即使您有多個演示者,您仍需要維護一個層次結構,以便演示者可以相互交談。因此,在某種程度上,主持人將瞭解按鈕點擊和空容器等待填充的知識,即使知識是通過另一位演示者間接獲得的。
編輯2 :(爲了迴應您的更新評論)沒有硬性規定,但MVP實施中的一個共同特徵是Presenter至少保留了部分控制權。這意味着演示者必須對某些相關UI元素具有某種級別的訪問權限。如果您在視圖中嵌套視圖,那麼您仍然需要爲演示者設計一種與它們交互的方式。
相關問題
- 1. 在一個視圖中的視圖模型/實體或多個視圖模型的多個視圖?
- 2. 單視圖模型(iOS)的多視圖
- 3. 模型視圖控制器中的模型視圖控制器
- 4. 加載爲視圖或視圖模型?
- 5. iPad:以模型視圖顯示視圖
- 6. 模型,視圖,視圖模型和演示器
- 7. 部分視圖,視圖模型與主視圖不同
- 8. 樹視圖中的分層結構(C#)
- 9. iPhone視圖分層
- 10. 在mvvmcross中顯示來自非視圖/視圖模型的視圖
- 11. 使用Codeigniter或模板或部分視圖的動態視圖
- 12. 使用視圖模型和圖層分隔來實現主 - 細節視圖
- 13. 使用部分視圖在單個視圖中顯示多個模型
- 14. 如何在MVC5的部分視圖中更新視圖模型?
- 15. 強類型視圖中的多個部分視圖(ASP.NET MVC4)
- 16. Caliburn Micro,單視圖模型中的多個視圖
- 17. 剃刀視圖中的多視圖模型
- 18. 檢測控制器中的視圖或部分視圖
- 19. 以視圖分頁器的網格視圖顯示圖像
- 20. MVC - 另一個模型視圖中的模型視圖
- 21. WPF中模型視圖和視圖模型之間的關係
- 22. 視圖模型
- 23. knockout.js刪除嵌套視圖模型視圖模型,並在主視圖模型
- 24. 根據Java中的模型 - 視圖 - 控制器製作視圖
- 25. 部分視圖或模型繼承
- 26. 模型/視圖分離
- 27. 多視圖模型breakout.js
- 28. applyBindings main.js多視圖模型
- 29. 多線程視圖模型
- 30. 多模型視圖矩陣
所以你在說的是演示者與視圖和界面有一對多的關係?這是否意味着如果我有一個嵌套視圖,可以有第三個嵌套視圖的視圖,我必須通過構造函數 –
傳遞引用我猜你正在使用winforms。 WinForms將與您嘗試利用它的動作進行鬥爭。我之前做過,但很少會自然而然的,你必須做出一些妥協。如果可以的話,我推薦使用MVVM,其中MVVM很自然並且很容易支持。 – JDB
感謝您的所有輸入。我想我可能會嘗試製作和處理主持人之間交流的「觀察員」或「主持人」。這整個模式對我來說很時髦,但我決心實施它 –