每个动态视图应绑定到相应的ViewModel

问题描述 投票:0回答:1

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

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中,给出了视图优先的想法,但是......

..how可以动态数量的视图每个绑定到正确的ViewModel以及如何创建正确数量的ViewModel(其中包含每个其他信息,即图片路径)?

我的想法:当我从配置中知道,存在图片内容的3个单元格并且只创建3个PictureViewModel实例时,我如何创建3次视图?或者相反,如果我创建3个视图,并为每个视图提供一个新的ViewModel,那些ViewModel不知道要显示哪些信息......

我现在已经困惑了几天,但找不到干净的方式。

谢谢您的帮助!

c# wpf autofac mvvm-light
1个回答
0
投票

我采用的解决方案是,在创建新视图的那一刻(即将new ImageView添加到Grid的孩子们),我通过Id为相对PictureConfig。因此视图可以告诉Id它的ViewModel,它将在Id的PictureConfigs-List中找到正确的PictureConfig

© www.soinside.com 2019 - 2024. All rights reserved.