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



我正在使用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
}

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

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

相关内容

  • 没有找到相关文章

最新更新