簡體   English   中英

使用PRISM,如何顯示另一個模塊的視圖,並訪問其屬性以更新其狀態?

[英]Using PRISM, how do I display the view from another module, and access its properties to update its state?

我有兩個模塊,一個是Header模塊,一個是Items模塊。

我有一個HeaderDetails視圖,其中包含一個稱為“ ItemsSummaryRegion”的區域。 注冊此區域以使用Items模塊中的視圖ItemListView填充該區域。

regionManager.RegisterViewWithRegion("ItemsSummaryRegion", typeof(IItemListView));

問題是,如何訪問此自動生成的視圖,以便設置應該顯示的項目列表? 我想在HeaderDetails視圖的ViewModel中進行設置。

有誰知道你是怎么做到的? 還是可以建議一種更好的顯示此數據的方法?

謝謝。

如果您的兩個模塊是如此緊密地耦合在一起,那么只包含一個包含兩個視圖的模塊並使用主視圖/細節視圖來設置它們是否更有意義。

此示例顯示了與您要實現的目標類似的內容: http : //www.tanguay.info/web/index.php?pg= codeExamples& id=105

您應該使用unityContainer創建事物,然后調用“添加並激活”。

    public TaskList(IEventAggregator eventAggregator, 
                    IRegionManager regionManager, 
                    IUnityContainer container)
    {
        _EventAggregator = eventAggregator;
        _RegionManager = regionManager;
        _Container = container;
    }


        IItemListVM vm = _Container.Resolve<IItemListVM>();
        IItemListView view = new IItemListView(vm);

        _RegionManager.Regions["ItemsSummaryRegion"].Add(view);
        _RegionManager.Regions["ItemsSummaryRegion"].Activate(view);

這使您可以調用IRegion.Remove 。要清除該區域,請稍后IRegion.Remove 如果您只想用視圖注冊一個區域,也可以這樣做,只需用對RegisterViewWithRegion的另一個調用替換我邏輯的最后幾行:

_RegionManager.RegisterViewWithRegion("ItemsSummaryRegion", 
     (x) => 
     { 
          _Container.Resolve<IItemListView>(); 
     });

暫無
暫無

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

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