[英]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.