当前位置:  开发笔记 > 编程语言 > 正文

WPF:在UserControl的构造函数中加载数据会破坏Designer

如何解决《WPF:在UserControl的构造函数中加载数据会破坏Designer》经验,为你挑选了1个好方法。

我有一个带有usercontrol的主窗口.在usercontrol的默认构造函数中添加代码时,设计器停止显示主窗口.它给出了一个信息:

加载问题

该文档包含必须在加载设计器之前修复的错误.
修复错误后重新加载设计器.

重新加载设计师

为什么是这样?

这是我在构造函数中的代码:

using (var context = new Data.TVShowDataContext())
{
    var list = from show in context.Shows
               select show;

    listShow.ItemsSource = list;
}

如果我不能使用构造函数来填充gui数据,我应该什么时候做呢?用绑定做这个会更好吗?任何sugestions怎么样?



1> BadCanyon..:

WPF设计器将在显示子元素时执行构造函数.我的猜测是你在构造函数中有代码在设计时抛出异常,可能是因为它使用了一个只在运行时可用的对象.解决方案是使用检查来围绕构造函数逻辑,以防止它在设计器中显示时执行.

if (!System.ComponentModel.DesignerProperties.GetIsInDesignMode(this))
{
  using (var context = new Data.TVShowDataContext())
  {
    var list = from show in context.Shows
               select show;

    listShow.ItemsSource = list;
  }    
}

推荐阅读
oDavid_仔o_880
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有