ビジネスロジックをビューから正しく分離するためにMVVMを実装しようとするプロジェクトに取り組んでいます。私はこのパターンに関する多くの論文を読み、サンプル アプリケーションを見てきましたが、まだ答えのない疑問がいくつかあります。
私のモデルは、さまざまな種類Documentsのリストを含む のセットで構成されています。DocumentObjects
にDocumentObjectsは計算ロジックが含まれており、相互に、および と相互作用しますDocument。
次に、Views と ViewModels を用意します ( のそれぞれにDocument1 つ、 の種類ごとに 1 つDocumentObjects) 。
これを正しい MVVM パターンで実装するには、リストDocumentViewを表示するようにします (例を使用)。次に、WPF は、DataTemplate エントリを介して使用する適切なビューを選択します。DocumentObjectsItemsControl
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ですか?
(私のデザインが最善でない可能性があることは承知しており、提案を受け付けています!)。