WPF 実行モードの決定: デザインタイムとランタイム
WPF アプリケーションを開発していて、デザインタイムを区別する方法が必要ですか (例: 、Visual Studio または Blend 内) とランタイム実行?もしそうなら、あなたは一人ではありません。幸いなことに、WPF は信頼性の高いソリューションを提供します。
デザイン時モードの識別
WPF は、DependencyObject をパラメーターとして受け取る DesignerProperties.GetIsInDesignMode() というプロパティを提供します。このプロパティを利用すると、コードがデザイン モードで実行されているかどうかを確認できます。
// 'this' represents your UI element DesignerProperties.GetIsInDesignMode(this);
Silverlight または WP7 をターゲットとする場合は、GetIsInDesignMode が false を返す場合があるため、代替プロパティ DesignerProperties.IsInDesignTool の方が適切です。 Visual Studio ではポジティブです。
DesignerProperties.IsInDesignTool
WinRT、Metro、および Windows ストア アプリケーションの場合、同等のものは次のとおりです。 Windows.ApplicationModel.DesignMode.DesignModeEnabled:
Windows.ApplicationModel.DesignMode.DesignModeEnabled
サンプル シナリオ
ViewModel でデザイン時とランタイムを区別して、どちらかを表示する必要があると述べました。現在のモードに基づいて顧客データまたはライブ データを模擬します。
を活用することでGetAll プロパティ内の GetIsInDesignMode() を使用すると、実行環境に応じて 2 つのデータ ソースをシームレスに切り替えることができます。
public ObservableCollection<Customer> GetAll { get { try { if (DesignerProperties.GetIsInDesignMode(this)) { return CustomerDesign.GetAll; } else { return Customer.GetAll; } } catch (Exception ex) { throw new Exception(ex.Message); } } }
このアプローチは、アプリケーションの実行コンテキストに基づいてデータを管理する便利で柔軟な方法を提供します。
以上がWPF アプリケーションがデザイン モードで実行されているかランタイムで実行されているかを確認するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。