6

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

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

推荐的方法不适用于静态方法。


编辑:

静态构造函数是从 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
}
4

1 回答 1

4

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

  1. 将初始化代码从静态构造函数移动到附加属性更改回调。坦率地说,在静态构造函数中做这种工作并不是一个好习惯。
  2. 在您附加的属性更改回调中,您有一个对您的窗口的引用。因此,您可以致电DesignerProperties.GetIsInDesignMode(yourwindow)并决定是否需要加载文件或任何导致问题的原因。
于 2012-10-16T18:11:19.487 回答