动态数量的视图应该分别绑定到相应的 ViewModel

Dynamic amount of Views should each bind to corresponding ViewModel

情况:思路是,有一个config.xml,可以定义Column-Count和Row-Count,以及一些关于什么的信息应该为每个单元格显示(即图像路径、html 路径、工作流程的 ID)。我读取并保存此配置 Config-class:

public class Config
{
    public int RowCount;
    public int ColumnCount;
    public List<PictureConfig> PictureConfigs;
    public List<HtmlConfig> HtmlConfigs;
    public List<WorkflowConfig> WorkflowConfigs;
}

为此,我为每种类型的单元格内容创建了一个视图 => ImageViewHtmlViewWorkflowView,当然还有相应的 ViewModel,它们应该提供内容显示给定路径或 ID。

我正在使用 WPF、MVVM Light 和 Autofac,并且有一个 ViewModelLocator.

问题:正如我在Config-class中看到的,可以有多个相同类型的视图(每次都有不同的信息关于显示什么)。现在在MVVM Light中,给出了view-first的思路,但是..

..如何将动态数量的视图分别绑定到正确的 ViewModel 以及如何首先创建适量的 ViewModel(保存彼此的信息,即图片路径) ?

我的想法:当我从配置中得知,存在 3 个带有图片内容的 Cell,并且只创建了 PictureViewModel 的 3 个实例,我该如何创建a View 3 次也是如此?或者反过来,如果我创建 3 个视图,并给它们每个视图一个新的 ViewModel,那些 ViewModel 不知道要显示哪些信息...

这两天一直在纠结,一直没找到解决办法。

感谢您的帮助!

我采用的解决方案是,在创建新视图时(即将 new ImageView 添加到 Grid 的子项),我将 ID 传递给 [=12] =].因此视图可以告诉 Id 它的 ViewModel,这将通过 Id 在 PictureConfigs-List 中找到正确的 PictureConfig