我需要显示一些图形/图表“缩略图”。单击其中一个将显示“扩展视图”(在单独的面板中),该视图显示更大版本的图表,以及用于查看和操作图表的控件。
会有许多不同的图表,每个图表都以不同的方式绘制我的数据。此外,给定的图表类型可能会出现多次,每次都绘制不同的数据子集。“扩展”视图中的控件也会因一种图表类型而异,因此这里几乎没有共性。
我正在努力弄清楚如何在 MVVM 中对所有这些进行建模,特别是考虑到需要动态创建未知数量的缩略图(在某些情况下还有多个相同类型的实例)。
大声思考,我想我需要一个表示单个缩略图的视图/视图模型(视图包含图表组件,VM 公开要绘制的数据)。我想我还需要一个用于“缩略图列表”UI 的 V/VM,负责创建缩略图并通过集合公开它们以绑定到列表。但是它是如何实例化这些的呢?虚拟机被注入到它的视图中,这表明“缩略图列表”虚拟机必须动态实例化缩略图视图——但虚拟机不应该知道视图吗?!
最后,当我显示“扩展”视图时,(以某种方式)将缩略图中使用的图表组件/视图传递给它是有意义的,以避免再次渲染图表,但是如何?
如果相关/有帮助,我将使用 Castle Windsor 进行依赖注入,以及 Prism 的导航功能。