在ViewModel中阻止在设计时执行默认构造函数

时间:2010-10-14 02:38:11

标签: wpf

我在ViewModel类的默认构造中放了一些数据访问逻辑。 但是,每当尝试打开xaml设计器窗口时,visualstudio都会尝试执行ViewModel的默认构造函数,然后从此弹出错误窗口。

如何防止在ViewModel类中执行默认构造函数。 我知道GetIsInDesignModel()方法可以在codebehind类中执行此操作,但是不可能在ViewModel类中使用,因为此方法的参数需要DependencyObject类型。

任何解决方案吗?

1 个答案:

答案 0 :(得分:4)

您可以使用

在ViewModel代码中静态访问IsInDesignMode属性
(bool)DependencyPropertyDescriptor.FromProperty(
                                 DesignerProperties.IsInDesignModeProperty,
                                 typeof(DependencyObject)
                                 ).Metadata.DefaultValue;