簡體   English   中英

在視圖之間交流

[英]Communicate between views

我在嘗試理解這種模式時遇到了很多麻煩。 在工作中,我們正在使用被動視圖來實現MVP。 我們正在使用WinForms。

  • 因此,我們有一個View(它是Windows窗體),它實現了一個接口並有一個演示者。
  • 演示者獲得該視圖實現的接口的實例,並通過該接口管理視圖。
  • 演示者可以看到模型和經理。
  • 管理器處理幾種模型的數據庫持久性,但是它不是手動添加的,它使用一個單獨的層,稱為數據,因此告訴該層持久化數據
  • 然后,數據層使用實體框架將數據持久化到數據庫中

假設我們有一個“客戶”視圖,它代表一個“模型客戶”,並且在數據庫中有一個名為“客戶”的表。 客戶可以有名字和城市。

我們還有一個城市視圖,它是一個簡單的添加,編輯和刪除操作,它還代表一個模型城市和一個表城市。

現在,在“客戶”視圖中,我們希望允許用戶添加一個新城市,因此在該視圖中,我們打開另一個視圖,即“城市”視圖,然后用戶創建一個新城市。

從“客戶”視圖,我想查看用戶添加的城市,這怎么可能? 視圖會返回一些東西嗎?

(我想將其存儲在內存中,而不在添加城市時將任何內容持久化到數據庫中,我只需要城市的模型)

我認為返回模型並從視圖中查看模型不是MVP。 那我該怎么辦呢?

一個視圖打開另一個視圖是完全合理的,但是我個人不贊成該視圖返回供調用方使用的值。 如果需要其他視圖來訪問這個新城市怎么辦?

在這里查看我的答案: 主持人之間的MVP溝通? 有關使用pub / sub實現目標的示例。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM