2015年8月12日水曜日

Wpfのデザインモード判定

いつも忘れるのでメモ。
デザインモード時に実行したくないコードの分岐
Is there a DesignMode property in WPF?

DesignerProperties.GetIsInDesignMode メソッド

    // Check for design mode. 
    if ((bool)(DesignerProperties.IsInDesignModeProperty.GetMetadata(typeof(DependencyObject)).DefaultValue)) 
    {
        return false;
    }

DLL利用するタイプのアセンブリを作成しているときに、デザイナの作業Dirがよくわからないところで実行されるから、デザイナがエラーで調整ができないことがよく。

追記
Bindings の型を微妙に間違えている時の方が経験的に多いからそっちをチェックするのも。interface の依存プロパティを作って、派生型のプロパティにBindするということをやって、型エラーでXAMLデザイナーがエラーになっていた経験則。

0 件のコメント: