情况:这个想法是,有一个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;
}
为此,我为每种类型的单元格内容创建了一个视图=&gt; ImageView
,HtmlView
,WorkflowView
当然还有相应的ViewModel,它们应该提供要显示给定路径或ID的内容。
我正在使用WPF,带有Autofac的MVVM Light并且有一个ViewModelLocator.
问题:正如我Config
- 类中所见,可能有多个相同类型的视图(每次都有不同的信息显示)。现在在MVVM Light中,给出了视图优先的想法,但是......
..如何动态数量的视图分别绑定到正确的ViewModel,以及如何创建正确数量的ViewModel(它们保存彼此的信息,即图片路径)?
我的想法:当我从配置中知道有3个包含图片内容的单元格并且只创建3个PictureViewModel
实例时,我该如何创建3次视图好?或者相反,如果我创建3个视图,并为每个视图提供一个新的ViewModel,那些ViewModel不知道要显示哪些信息......
我现在已经困惑了几天,但找不到干净的方式。
感谢您的帮助!
答案 0 :(得分:0)
我采用的解决方案是,在创建新视图(即将new ImageView
添加到Grid
的子代)时,我传递了相对PictureConfig
的ID 。这样,视图便可以将其ViewModel
告诉ID,ID会在ID的PictureConfigs-List中找到正确的PictureConfig
。