使用Prism,如何从另一个模块显示视图,并访问其属性以更新其状态?

StackOverflow https://stackoverflow.com/questions/2342256

  •  23-09-2019
  •  | 
  •  

我有两个模块,一个是标头模块,一个是项目模块。

我有一个HeaderDetails视图,其中包含一个称为“物品SummaryRegion”的区域。该区域已注册,以从项目模块中使用视图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 稍后您想清除该地区。如果您只想在视图中注册一个区域,也可以做到这一点,只需将我的逻辑的最后几行替换为dogendmentViewWithRegion的另一个电话:

_RegionManager.RegisterViewWithRegion("ItemsSummaryRegion", 
     (x) => 
     { 
          _Container.Resolve<IItemListView>(); 
     });
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top