如何在PRISM中获取区域视图

本文关键字:获取 区域 视图 PRISM | 更新日期: 2023-09-27 18:25:34

我正在使用PRISM,并试图获取视图,但函数GetView()返回null。

我做错了什么?

    public void Initialize()
    {
        _regionManager.RegisterViewWithRegion("TopLeftRegion", () => _container.Resolve<View1>());
        _container.RegisterType<Object, View1>("ViewB");
        var view = _regionManager.Regions["TopLeftRegion"].GetView("ViewB");
    }

如何在PRISM中获取区域视图

返回null的原因是没有名为"ViewB"的视图。当您使用RegisterViewWithRegion时,Prism会激活视图类型的新实例(在您的情况下为View1>。但是,无法使用该技术为视图集合命名该实例。

为了完成您想要做的事情,您需要将自己实例化的视图添加到区域中

_regionManager.Regions["TopLeftRegion"].Add(new View1(),"ViewB");
var view = _regionManager.Regions["TopLeftRegion"].GetView("ViewB");

更多信息可以在这里找到