[解決済み] WPFが現在デザインモードで実行されているかどうかを確認する方法はありますか?
2022-04-27 23:11:36
質問
現在、コードがデザインモード(BlendやVisual Studioなど)で実行されているかどうかを確認できるような、グローバルな状態変数をご存知の方はいらっしゃいますか?
以下のような感じでしょうか。
//pseudo code:
if (Application.Current.ExecutingStatus == ExecutingStatus.DesignMode)
{
...
}
私のアプリケーションがExpression Blendのデザインモードで表示されているとき、ViewModelが代わりに"Design Customerクラス"を使用し、その中にデザイナーがデザインモードで表示できるモックデータを持ちたいからです。
しかし、実際にアプリケーションが実行されるときには、もちろん、ViewModel には実際のデータを返す本物の Customer クラスを使用したい。
現在は、デザイナーが作業する前に ViewModel に入り、 "ApplicationDevelopmentMode.Executing" を "ApplicationDevelopmentMode.Designing" に変更することでこれを解決しています。
public CustomersViewModel()
{
_currentApplicationDevelopmentMode = ApplicationDevelopmentMode.Designing;
}
public ObservableCollection<Customer> GetAll
{
get
{
try
{
if (_currentApplicationDevelopmentMode == ApplicationDevelopmentMode.Developing)
{
return Customer.GetAll;
}
else
{
return CustomerDesign.GetAll;
}
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}
}
解決方法は?
あなたが探しているのは GetIsInDesignMode これは、DependencyObjectを取ります。
Ie
// 'this' is your UI element
DesignerProperties.GetIsInDesignMode(this);
編集する
Silverlight / WP7 を使用する場合、以下のようになります。
IsInDesignTool
から
GetIsInDesignMode
は、Visual Studio では false を返すことがあります。
DesignerProperties.IsInDesignTool
編集する
最後に、完全を期すために、WinRT / Metro / Windows Storeアプリケーションで同等となるのは
DesignModeEnabled
:
Windows.ApplicationModel.DesignMode.DesignModeEnabled
関連
-
[解決済み】「The breakpoint will not currently be hit」を改善するには?このドキュメントにはシンボルが読み込まれていません。" という警告はどうすれば改善されますか?
-
[解決済み】ソケットのアドレス(プロトコル/ネットワークアドレス/ポート)は、通常1つしか使用できない?
-
[解決済み】Socket.Selectがエラー "An operation was attempted on something that is not a socket" を返す。
-
[解決済み】EF 5 Enable-Migrations : アセンブリにコンテキストタイプが見つかりませんでした
-
[解決済み】Unity 「関連するスクリプトを読み込むことができません」「Win32Exception: システムは指定されたファイルを見つけることができません"
-
[解決済み】Visual Studio: 操作を完了できませんでした。パラメータが正しくありません
-
[解決済み】データが存在しないのに読み込もうとする試みが無効である
-
[解決済み] ファイルが使用中であるかどうかを確認する方法はありますか?
-
[解決済み] WPFでMessageBoxに相当するものはありますか?
-
[解決済み】WPFアプリケーションで例外をグローバルにキャッチする?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】「未割り当てのローカル変数を使用」とはどういう意味ですか?
-
[解決済み] エンティティタイプ <type> は、現在のコンテキストのモデルの一部ではありません。
-
[解決済み] [Solved] アセンブリ System.Web.Extensions dll はどこにありますか?
-
[解決済み】Unity 「関連するスクリプトを読み込むことができません」「Win32Exception: システムは指定されたファイルを見つけることができません"
-
[解決済み】"指定されたパスのフォーマットはサポートされていません。"
-
[解決済み】5.7.57 SMTP - MAIL FROMエラー時に匿名メールを送信するためにクライアントが認証されない
-
[解決済み】aspNetCore 2.2.0 - AspNetCoreModuleV2 エラー
-
[解決済み】パラメータ付きRedirectToAction
-
[解決済み】Microsoft.Extensions.LoggingからILoggerを解決することができない
-
VSでscanfエラーを恒久的に解決するには、ソースファイルを作成し、自動的に#define _CRT_SECURE_NO_WARNINGS 1を追加してください。