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

时间:2012-02-23 01:01:30

标签: c# module prism 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");
    }

1 个答案:

答案 0 :(得分:5)

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

要完成您想要做的事情,您需要添加一个您自己实例化的视图

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

var view = _regionManager.Regions["TopLeftRegion"].GetView("ViewB");

可以找到更多信息here