用Blend 或VS 2010的设计视图打开一个用户控件,如果出现错误(最常见的是空引用错误),而debug时程序运行正常,那很可能是由于设计时的一些限制造成控件无法在设计器中正常打开。如何避免呢?通过 System.ComponentModel.DesignerProperties.IsInDesignTool 判断当前状态是否是设计时,在设计时避免构造函数与Loaded事件处理方法中执行那些代码即可,例如:
public partial class ProductsView : UserControl {
public ProductsView() {
InitializeComponent();
if (!DesignerProperties .IsInDesignTool) {
//call web services etc.
}
}
}
此外,设计时访问Applicaiton 或者App也会出错,因为它们在设计时始终为null
解决用户控件设计时错误
本文介绍了解决用户控件在Blend或VS2010设计视图中出现空引用错误的方法。通过使用System.ComponentModel.DesignerProperties.IsInDesignTool属性判断当前环境是否处于设计时,并在设计时避免执行特定代码,如调用Web服务等。

1572

被折叠的 条评论
为什么被折叠?



