在静态方法中使用WPF检测设计模式

时间:2012-10-16 14:56:30

标签: wpf static designmode

我正在使用WPF。我有一个静态类,它执行一些在设计模式下不可用的设置。此构造函数在设计模式下由窗口调用,这会导致抛出异常。

如何在静态方法中检测设计模式,以便调用适当的设计模式行为?

recommended approach不适用于静态方法。


编辑:

静态构造函数是从xaml调用的,所以我无法有条件地调用它(除非我将调用移到代码隐藏,我想避免)。

在窗口中:<Window ... HelpProvider.Keyword="some_help_topic.html">

在课堂上:

static HelpProvider()
{
    // Load the .chm file from an application setting (this fails at design time)

    // Add a WPF command binding
}

1 个答案:

答案 0 :(得分:4)

解决它在xaml文件中保留附加属性的可能方法是:

  1. 将初始化代码从静态构造函数移动到附加属性更改回调。坦率地说,在静态构造函数中执行此类工作并不是一种好习惯。
  2. 在您附加的属性更改回调中,您有对您的窗口的引用。因此,您可以在那里调用DesignerProperties.GetIsInDesignMode(yourwindow)并决定是否需要加载文件或导致问题。