簡體   English   中英

如何使用Prism和Unity顯示視圖的多個實例

[英]How display multiple instances of a view using Prism and Unity

我正在使用WPF,Unity和Prism 4開發.Net應用程序。該應用程序將包含一個外殼,該外殼在選項卡頁上具有多個視圖。 該應用程序嚴重依賴於名為SystemTreeModule的模塊,該模塊包含將在許多地方出現的SystemTreeView

我剛剛完成了第一個視圖,在其中定義了一個名為“ SystemTreeRegion”的區域。 在SystemTreeModule我登記我的一個實例SystemTreeView與那個區域。 奇跡般有效! SystemTreeView類型是使用Unity的自動發現功能發現的(因此未明確注冊):

public void Initialize()
{
    _regionManager.RegisterViewWithRegion("SystemTreeRegion", () => _container.Resolve<SystemTreeView>());
}

現在是時候在我要使用SystemTreeView的第二個模塊上開始工作了。 當我在新視圖中創建一個名為“ SystemTreeRegion”的區域時,我感到非常有信心,但是由於以下異常而失敗:

創建名稱為“ SystemTreeRegion”的區域時發生異常。 例外是:System.ArgumentException:具有給定名稱的區域已經注冊:SystemTreeRegion

所以我已經用谷歌搜索了StackOverflow並找到了答案,但是我還無法弄清楚你應該怎么做!

我什至無法告訴我是否只是在漏掉一些細節,或者從概念上講我還沒有離開……

從概念上講,您並非遙不可及。 通過模塊提供視圖是完全可以的。 但是請記住,您的應用程序中只能有一個名為“ SystemTreeRegion”的視圖,因為否則Prism的區域管理器將不知道您要訪問哪個視圖。

考慮到這一點-如果您嘗試將視圖注冊到某個區域的名稱,並希望該視圖會出現在帶有該名稱的每個區域中,則從概念上講您是錯誤的。 您只能將視圖注冊到區域。

因此,只需確保每個區域都有自己的唯一名稱,然后注冊該區域所需的視圖就可以了。

暫無
暫無

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

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