如何获取 PRISM 中某个区域的视图?
我正在使用 PRISM,并且尝试获取视图,但函数 GetView()
返回 null。
我做错了什么?
public void Initialize()
{
_regionManager.RegisterViewWithRegion("TopLeftRegion", () => _container.Resolve<View1>());
_container.RegisterType<Object, View1>("ViewB");
var view = _regionManager.Regions["TopLeftRegion"].GetView("ViewB");
}
I'm using PRISM and I'm trying to get the view, but returns null the function GetView()
.
What am I doing wrong?
public void Initialize()
{
_regionManager.RegisterViewWithRegion("TopLeftRegion", () => _container.Resolve<View1>());
_container.RegisterType<Object, View1>("ViewB");
var view = _regionManager.Regions["TopLeftRegion"].GetView("ViewB");
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
它返回 null 的原因是因为没有名为“ViewB”的视图。当您使用 RegisterViewWithRegion 时,Prism 会激活视图类型的新实例(在您的情况下为 View1>。但是,无法使用该技术为视图集合命名该实例。
要完成您想要做的事情,您需要将您自己实例化的视图添加到该区域中
可以找到更多信息此处
The reason it is returning null is because there are no views with the name "ViewB". When you use RegisterViewWithRegion, Prism activates a new instance of the view type (in your case View1>. However, there is no way to name that instance for the views collection using that technique.
To accomplish what you want to do, you need to add a view that you instantiate yourself to the region.
More information can be found here