c# - 动态数量的视图应分别绑定到相应的视图模型
问题描述
情况:想法是,有一个 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;
}
为此,我为每种类型的单元格内容创建了一个视图 => ImageView
、HtmlView
,WorkflowView
当然还有相应的 ViewModel,它应该为给定的路径或 ID 提供要显示的内容。
我正在使用带有 Autofac 的 WPF、MVVM Light 并且有一个ViewModelLocator.
问题:正如我的班级所见Config
,可以有多个相同类型的视图(每次都有不同的显示内容信息)。现在在 MVVM Light 中,给出了视图优先的想法,但是..
..如何将动态数量的视图各自绑定到正确的 ViewModel 以及如何首先创建正确数量的 ViewModel(它们相互保存信息,即图片路径)?
我的想法:当我从配置中知道存在 3 个具有图片内容的单元格并且只创建 3 个实例时PictureViewModel
,我该如何创建一个视图 3 次呢?或者反过来,如果我创建 3 个视图,并给它们每个新的 ViewModel,这些 ViewModel 不知道要显示哪些信息......
我已经困惑了几天了,但找不到干净的方法。
谢谢您的帮助!
解决方案
我采用的解决方案是,在创建新视图(即添加new ImageView
到 a 的子级Grid
)时,我将 Id 传递给 relative PictureConfig
。因此,视图可以告诉 Id 它的ViewModel
,它将PictureConfig
通过 Id 在 PictureConfigs-List 中找到正确的。
推荐阅读
- java - spring注入构造函数时,如何知道并注入参数是否为列表对象?
- python - Matplotlib 到 TikZ ridgeplot 问题(出现轴)
- python-3.x - 图像直方图转化为线形的算法
- excel - 在列表中查找标题名称并在工作表 1 中搜索每个标题名称,一旦找到,剪切整个列并移动到 A 列
- reactjs - 有没有办法在每次路线/屏幕随本机导航发生变化时运行代码?
- javascript - 如何使用 next.js 预加载本地字体
- android - “LL-NDK”(在 Android Project Treble 中)是什么意思?
- c# - 当存在多个对象时,YoloV4 上的错误结果
- qml - TextInput 处理表情符号 Windows 10
- amazon-web-services - 使用 AWS IoT Core 从后端获取前端应用程序的实时通知