XAMLのコンストラクタなど、一部のメソッドやプロパティはデザインモードでも実行されます。デザインモードで動作しないプロパティやメソッドが参照されると、デザインモードでエラーが発生します。
対処方法
エラー箇所をStackTrace等で確認(大抵、XAMLのコンストラクタ内です)し、該当箇所をデザインモードで動作しないようします。デザインモードかはSystem.ComponentModel.DesignerProperties.GetIsInDesignModeメソッドで判定できます。サンプル
次のサンプルでは、イベントハンドラの登録を実行時にのみ行っています。-
C#
if(!System.ComponentModel.DesignerProperties.GetIsInDesignMode(this)) { this.Loaded += OnLoadedEventHandler; }
検証環境
- Microsoft Visual Studio Professional 2015 Version 14.0.25431.01 Update 3
- Microsoft .NET Framework Version 4.6.01055
- Microsoft Windows 7 Professional Service Pack 1 (Microsoft Windows NT 6.1 (7601))