为什么要单独把这个生命周期捞出来单独说一说呢?因为我今天就被这个东东坑了一把……新加了一个界面,第二次打开界面的时候会报错“指定的元素已经是另一个元素的逻辑子元素”。好嘛,我一看,哟,感觉就是xaml有问题啊。当然这个代码是基于MEF框架MVVM模式的。

    [Export("ViewA", typeof(IView))]
public partial class ViewA : UserControl,IView
{
public ViewA()
{
InitializeComponent();
}
}
    [Export("ViewB", typeof(IView))]
[PartCreationPolicy(CreationPolicy.NonShared)]
public partial class ViewB : UserControl,IView
{
public ViewB()
{
InitializeComponent();
}
}

为了确认是View层的问题,我就换了一下Import的View层(A变为B),结果多次打开界面也没有问题,说明什么?A.xaml果断是有问题的。是把xaml中的所有控件都清除,只保留最底层的Grid,再打开还是报一样的错。跟踪也看不出来,ViewModel没有问题,View的xaml也没有问题,那就只能是View的CodeBehind有问题了,一比对,果然发现少写了PartCreationPolicy。

上面的内容可能说的不是很清楚,但是只要知道,如果再系统中需要关闭某个界面,再重新打开时需要新创建一个实例的就不能忘记设置PartCreationPolicy.

最新文章

  1. python第一天基础1-2
  2. 在R语言中无法设置CRAN镜像问题
  3. XMLHttpRequest upload属性
  4. 1、IOS开发--iPad之仿制QQ空间(登录界面搭建+登录逻辑实现)
  5. JS 中的五个假值
  6. 设计模式-代理模式(Proxy)
  7. RedHat7安装Sublime Text 3
  8. 如何解决mysql数据库8小时无连接自动关闭
  9. Fiddler 抓取eclipse中的请求
  10. 【原创】leetCodeOj --- Interleaving String 解题报告
  11. Python的.py文件打包成exe可执行文件
  12. codeforces_Codeforces Round #541 (Div. 2)_abc
  13. C#WinForm无边框窗体移动方法、模仿鼠标单击标题栏移动窗体位置
  14. 论文笔记:A Review on Deep Learning Techniques Applied to Semantic Segmentation
  15. 专题--XOR之线性基
  16. MethodInfo类的一般使用
  17. CSDN博客栏目设置个性化
  18. Kibana访问权限控制
  19. python使用WSGI接口实现简单网页
  20. 从零开始的Python学习Episode 17——序列化

热门文章

  1. [转]在 Web 项目中应用 Apache Shiro
  2. CC_STACKPROTECTOR防内核堆栈溢出补丁分析【转】
  3. Android 获取版本号
  4. kafka消费者客户端(0.9.0.1API)
  5. [课程设计]Scrum 3.7 多鱼点餐系统开发进度(留言板选择方案)
  6. response项目的各个写法
  7. 面对对象之@classmethod、@staticmethod用法
  8. win7垃圾路径
  9. Unity手撸2048小游戏——背景文字控制
  10. UI进阶 跳转系统设置相关界面的方法