5

アプリケーションで Blendability を実現するには、ビュー ファーストのアプローチが最善の方法であるというガイダンスやアドバイスがまだたくさんあるように感じます。しかし、d:DataContext、d:DesignData、および d:DesignInstance を使用すると、ビューとビューモデルがどのように接続されているかに関係なく、ブレンド可能性の問題を解決するのは簡単ではありませんか?

DesignInstance を使用すると、デザイナーで使用する具体的な ViewModel タイプを選択するだけで、まるでビュー ファーストの構成を持っているかのようになります。実際、DesignInstance を使用すると、IsInDesignMode バックフリップを実行したり、実際のビューモデルでデザインをサポートするためだけにデフォルトのコンストラクターを作成したりするよりも、懸念事項をより適切に分離できます。ビューモデル タイプまたは共通インターフェイス タイプから継承して、単純な「デザイナー」を作成できます。ビューモデルであり、デザイナーに完全に制約されています。XAML で宣言的に偽のビューモデルを作成するだけで済みます。

確かに、上記のアクティビティを実行するには多少の初期費用がかかりますが、結果として、デザイン データを実際のビューモデルと混合することによって得られるものよりも、実際には明確に分離されます。足りないものはありますか?ブレンド可能性が依然として大きな懸念事項であるのはなぜですか?

4

1 に答える 1

4

ビュー全体のモックアップ データがある場合は、d:DataContext、d:DesignData、および d:DesignInstance を使用するとブレンド可能になります。

つまり、あなたの質問に対する答えは、要するに、実行時にビューをどのように使用するか (最初にビューを表示するか、ビューモデルを最初に表示するか) は関係ありません。ランタイム バージョンにビューモデル ロジックまたは初期化がある場合は、デザイン時のインスタンスにも同じものがあることを確認する必要があります。

多くの人が、基本的に 2 つのビューモデルを作成することで、作業を重複させる必要がない方法を見つけようとしています。私はそれがより良い分離も与えることに同意します.

于 2010-09-01T15:29:58.860 に答える