博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Prism中在Region中注入匹配问题
阅读量:6091 次
发布时间:2019-06-20

本文共 900 字,大约阅读时间需要 3 分钟。

简单实例说明

ExpandedBlockStart.gif
View Code
 1 [Export]
 2     
public 
partial 
class TitleView : UserControl
 3     {
 4         
public TitleView()
 5         {
 6             InitializeComponent();
 7         }
 8         [Import(
"
TitleViewModel
")]
 9         
public TitleViewModel ViewModel { 
get { 
return 
this.DataContext 
as TitleViewModel; } 
set { 
this.DataContext = value; } }
10     }

如果在module中采用如下方式调用 var titleview = ServiceLocator.Current.GetInstance<TitleView>(); 不会有错误.

而如果把上面的[Export]改为[Export("TitleView")] 则会引发异常

Activation error occured while trying to get instance of type TitleView, key ""

解决办法是将调用的方法更改为

var titleview = ServiceLocator.Current.GetInstance(typeof(TitleView), "TitleView");

同样我们在使用RegisterViewWithRegion注册View时如果也发生类似错误也可用此法解决,对应调用方法如下:

this.regionManager.RegisterViewWithRegion(RegionNames.MainTitleRegion, () => { return ServiceLocator.Current.GetInstance(typeof(TitleView), "TitleView"); });

转载于:https://www.cnblogs.com/oldkingsir/archive/2012/02/25/2367940.html

你可能感兴趣的文章
使用Cobbler批量部署Linux操作系统
查看>>
zabbix企业应用之服务端与客户端的安装
查看>>
实例讲解遗传算法——基于遗传算法的自动组卷系统【理论篇】
查看>>
无法在web服务器上启动调试。调试失败,因为没有启用集成windows身份验证
查看>>
Bat相关的项目应用
查看>>
Django为数据库的ORM写测试例(TestCase)
查看>>
NYOJ-107 A Famous ICPC Team
查看>>
与众不同 windows phone (44) - 8.0 位置和地图
查看>>
Visual Studio Code 使用 ESLint 增强代码风格检查
查看>>
iOS设备中的推送(二):证书
查看>>
敏捷 - #3 原则:经常提供工作软件 ( #3 Agile - Principle)
查看>>
数据结构与算法:二分查找
查看>>
使用思科模拟器Packet Tracer与GNS3配置IPv6隧道
查看>>
iOS开发-NSPredicate
查看>>
Exchange Server 2003 SP2 数据存储大小限制修改
查看>>
expr命令用法-实例讲解
查看>>
酷派8705救砖
查看>>
iOS10里的通知与推送
查看>>
# C 语言编写二进制/十六进制编辑器
查看>>
EMS SQL Management Studio for MySQL
查看>>