ビジネスロジックをビューから正しく分離するためにMVVMを実装しようとするプロジェクトに取り組んでいます。私はこのパターンに関する多くの論文を読み、サンプル アプリケーションを見てきましたが、まだ答えのない疑問がいくつかあります。
私のモデルは、さまざまな種類Documents
のリストを含む のセットで構成されています。DocumentObjects
にDocumentObjects
は計算ロジックが含まれており、相互に、および と相互作用しますDocument
。
次に、Views と ViewModels を用意します ( のそれぞれにDocument
1 つ、 の種類ごとに 1 つDocumentObjects
) 。
これを正しい MVVM パターンで実装するには、リストDocumentView
を表示するようにします (例を使用)。次に、WPF は、DataTemplate エントリを介して使用する適切なビューを選択します。DocumentObjects
ItemsControl
Document
この方法の問題は、ビューモデルではなく実際のリストであるmy に保持したいことですDocumentObjects
。次に、DataTemplate を使用してオブジェクトに使用するビューを記述した場合、使用したいビューモデルを指定できません...
私の質問は、「VVM」パーツを既存のモデルオブジェクトの上に、知らずに構築するにはどうすればよいですか? もっと現実的に言えば、MVVM ガイドラインに準拠するために、このデザイン パターンをどのように変更しますか?
(私が欲しいのは、一種の「モデルファースト」のインスタンス化です。)
私の質問を提起するサンプルアプリの1つ:MVVMに関するReed Copseyのブログ投稿:
<DataTemplate DataType="{x:Type model:FeedItem}">
<TextBlock Text="{Binding Path=Title}" />
</DataTemplate>
モデルは、FeedItem
を使用してビューで直接使用されますDataTemplate
。FeedItem
が必要な場合はどうすればよいViewModel
ですか?
(私のデザインが最善でない可能性があることは承知しており、提案を受け付けています!)。