c# - 如何从 PRISM 中的区域获取 View ?

标签 c# module prism ioc-container region

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

我做错了什么?

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

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

最佳答案

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

要完成您想要做的事情,您需要向该区域添加一个您自己实例化的 View 。

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

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

可以找到更多信息here

关于c# - 如何从 PRISM 中的区域获取 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9405659/

相关文章:

c# - 如何从 Windows Phone 相册中删除图像?

wpf - Prism RequestNavigate 不起作用

javascript - 无法在javascript方法中传递ajax post

c# - 根据行数将一个大的 Excel 文件拆分为多个

perl - 如何在 CPAN 上更新其他人的模块?

linux - insmod 和 modprobe 有什么区别?

c - 从进程 VMA 读取的 Linux 内核模块

c# - Prism/MEF : How can 2 windows' viewmodels talk to each other?

c# - DataGrid 组合框 SelectionChanged 滚动时触发事件

c# - 智能感知中的自定义代码片段