我们应该在什么时候从另一个ViewModel引用ViewModel



在许多ViewModel中,我需要来自另一个ViewModel的集合。基本上,每个VIewModel都有一个类型为ObservableCollection的List属性。大多数时候ViewA需要VIewModelA(用于CRUD)和ViewModelB.List(用于只读目的)。

这里推荐的方法是什么?

  1. 将ViewModelB注入ViewModelA并公开EntityBList属性
  2. 是否从ViewModelB在ViewModelA中添加/复制相同的GetList过程
  3. 在ViewA中,xaml同时引用ViewModelA和viewModelB

我通常使用选项1。将SharedViewModel单例注入到需要数据的视图模型中效果良好。在需要时添加额外的共享数据也很容易。

1)对此不确定。

2) 如果您正在复制代码,通常有更好的解决方案。

您可以使用singleton模式,并有一个类来存放您的Collections。然后,每个Viewmodel都在访问相同的列表。称之为DataAccessor或类似的东西。

3) 我不会有一个视图引用两个不同的视图模型。为什么不合并Viewmodel A和B呢?如果他们都与ViewA打交道,为什么他们目前是分开的?

相关内容

  • 没有找到相关文章

最新更新