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 に答える