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