不幸的是,我发现有时我编写的代码虽然在运行时非常好,但在使用Visual Studio 2010中的XAML / Designer时会让我感到头痛。我最喜欢的例子包括多个用于调试显示的MessageBoxes,但是,当前示例在构造函数中是一个非常轻的Singleton样式条件,这意味着当我想在XAML中对实例进行更改时,我必须重建解决方案。
我是否可以使用预处理程序指令跳过XAML Designer中的代码?
示例:
public class CustomFE : FrameworkElement
{
public CustomFE()
{
#if !XAMLDesigner // Or something similar
if (_instance != null)
throw new NotSupportedException("Multiple instances not supported");
#endif
_instance = this;
}
private static CustomFE _instance = null;
public static CustomFE Instance
{
get { return _instance; }
}
}
答案 0 :(得分:4)
您可以使用DesignerProperties.GetIsInDesignMode方法,如下所示:
if (!DesignerProperties.GetIsInDesignMode(this) && _instance != null)
throw new NotSupportedException(...)