2012-04-02 62 views
0

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

这里推荐的方法是什么?

  1. 注入ViewModelB到ViewModelA和暴露EntityBList财产
  2. 添加/ ViewModelB在ViewModelA复制同样的GetList程序?
  3. 在ViewA XAML参考两个ViewModelA和viewModelB

回答

0

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

0

1)不知道这一个。

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

你可以使用Singleton模式,并有一类握着你的收藏。然后每个Viewmodel访问相同的列表。称之为DataAccessor或类似的东西。

3)我不会有一个视图引用两个不同的Viewmodels。为什么不合并Viewmodel A和B?为什么他们现在分开,如果他们都处理ViewA?

+0

经过咨询几个来源后,最好与1)注射。至于方案3),这是相当普遍的情况。 VIewModelB用于ViewA(只读,可能作为参考实体)和ViewB(CRUD)。 – Goran 2012-04-04 16:16:36

相关问题