我有一个带有usercontrol的主窗口.在usercontrol的默认构造函数中添加代码时,设计器停止显示主窗口.它给出了一个信息:
加载问题
该文档包含必须在加载设计器之前修复的错误.
修复错误后重新加载设计器.重新加载设计师
为什么是这样?
这是我在构造函数中的代码:
using (var context = new Data.TVShowDataContext()) { var list = from show in context.Shows select show; listShow.ItemsSource = list; }
如果我不能使用构造函数来填充gui数据,我应该什么时候做呢?用绑定做这个会更好吗?任何sugestions怎么样?
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; } }