2012-04-02 63 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

相關問題