0

多数のグラフ/チャートの「サムネイル」を表示する必要があります。いずれかをクリックすると、チャートの拡大版と、チャートを表示および操作するためのコントロールを表示する「拡張ビュー」が (別のパネルに) 表示されます。

多数の異なるグラフがあり、それぞれが異なる方法でデータをプロットします。また、特定のグラフ タイプが複数回表示され、それぞれがデータの異なるサブセットをプロットする場合があります。「展開」ビューのコントロールもグラフの種類ごとに異なるため、共通点はほとんどありません。

特に、未知の数のサムネイルを動的に作成する必要がある場合 (場合によっては、同じタイプの複数のインスタンス)、MVVM でこれらすべてをモデル化する方法を理解するのに苦労しています。

考えてみると、単一のサムネイルを表すビュー/ビューモデルが必要だと思います (ビューにはチャート コンポーネントが含まれ、VM はプロットするデータを公開します)。サムネイルを作成し、リストにバインドするコレクションを介してそれらを公開する「サムネイル リスト」UI 用の V/VM も必要だと思います。しかし、これらをどのようにインスタンス化するのでしょうか? VM はそのビューに挿入されます。これは、「サムネイル リスト」VM がサムネイル ビューを動的にインスタンス化する必要があることを示唆していますが、VM はビューの知識を持つべきではありません。

最後に、「展開された」ビューを表示するとき、チャートを再度レンダリングする必要がないように、サムネイルで使用されたチャート作成コンポーネント/ビューを (どういうわけか) 渡すのが理にかなっていますが、どうすればよいでしょうか?

関連/役立つ場合は、Castle Windsor を依存性注入と Prism のナビゲーション機能に使用しています。

4

1 に答える 1

1

これは確かに複雑なトピックです...

アイコンのリストには、必ずしもアイコン自体ではないVMをお勧めします。これは、のプロパティにバインドできますIconListViewModels。次に、について考える必要がありますChartViewModelFactory。これは、DICと連携して機能します。

重要な議論はVM-Vの結婚です。最初に表示または最初にモデルを表示...1つの方法はViewResolver、ビューモデルに基づいて一致するビューを返す場合もあります...これは、ある種の規則に依存する可能性があります。したがって、最後のステップは、ビューモデルを工場に依頼して、一致するビューを見つけてそれらを接着し、コンテンツプレゼンターにバインドすることです...

これがあなたが始めるのに役立つことを願っています...

于 2013-02-18T13:39:19.360 に答える