【发布时间】:2021-07-09 16:56:12
【问题描述】:
目前我正在学习 MVVM,现在我有一个新手问题。
假设我的应用程序结构如下
视图模型
- ViewModelA
- ViewModelB
- ViewModelC
型号
- ModelX
模型应保存在应用程序启动时读取的“config.xml”文件中的所有信息。
程序步骤链
- 应用程序启动
- viewModelA 将执行名为“readXML”的函数
- config.xml 的一些信息应该显示在view1 中,而另一些信息应该显示在view2 中,依此类推。这就是我提出以下问题的原因......
我现在如何为所有视图模型提供读取的 XML 数据?
提前致谢:)
【问题讨论】:
-
这些视图模型在范围和功能上是否有很大不同? MVVM 的一部分是在视图之间重用您的视图模型。视图模型根本不应该关心附加到它的视图。
-
您可以将 XML 读取移动到不同的类(您可以将其命名为 XmlReader - 非常直观),使用 XML 读取的结果填充模型实例,并为所有 3 个 VM 实例提供相同的模型实例...
-
@JonBangsberg:不是真的,viewModel 仅用于数据绑定。例如一些 ObservableCollections 在我的视图中创建动态文本框。但我认为每个视图都应该有自己的 ViewModel 吗?根据你的说法,我可以用 viewModelA 让 view1、2、3 知道,然后绑定数据?
-
@lidgy:您的建议是否符合 MVVM 标准?你希望我将类 XMLreader 作为参数传递给视图模型,不是吗?