如何从PRISM中的某个地区获取视图?

Dar*_*Zon 2 c# prism module ioc-container region

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

我究竟做错了什么?

    public void Initialize()
    {
        _regionManager.RegisterViewWithRegion("TopLeftRegion", () => _container.Resolve<View1>());
        _container.RegisterType<Object, View1>("ViewB");

        var view = _regionManager.Regions["TopLeftRegion"].GetView("ViewB");
    }
Run Code Online (Sandbox Code Playgroud)

Bah*_*gor 5

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

要完成您想要执行的操作,您需要添加一个您自己实例化到该区域的视图.

_regionManager.Regions["TopLeftRegion"].Add(new View1(),"ViewB");

var view = _regionManager.Regions["TopLeftRegion"].GetView("ViewB");
Run Code Online (Sandbox Code Playgroud)

更多信息可以在这里找到