2011-03-23 18 views
0

我有一個MainViewModel,它從MEFedMVVM自動注入一些服務。讓注入的服務落入多個ViewModel

該MainVM創建其他ViewModels/Controllers。這些再次創建ObservableCollections並通過把收集從上面的一些服務在的ViewModels的構造......

是好/壞/ OK,讓從服務墜落谷底......

MainVM 
--AdminVM 
----Collection<1VM> 
--PlannerVM 
----Collection<2VM> 
--etc...VM 

到其他xVM的?還是應該直接在相應的虛擬機中以代碼的形式檢索服務?

回答

0

這取決於服務的性質。如果服務是「單身人士」,即只有一種服務SomeService,那麼讓它級聯就沒有意義。需要它的代碼可以讓MEF自動解決依賴關係。

否則,如果可能存在單個服務的多個實例存在的原因,則級聯是有意義的。

+0

以及服務是來自MEFedMVVM的單身人士。但是我有ViewModels/Controllers和ViewModels封裝了一個不是由MEF創建的模型,但是我需要將服務傳遞給它們,而且現在我通過級聯來完成......我只是認爲ViewMOdel不應該創建一個服務或者不知道它...它只是被注入... – msfanboy 2011-03-23 13:44:30

+0

@msfanboy:我不太明白你所描述的,但我們並不不同意:讓MEF將服務注入到所有ViewModels中。不需要'AdminVM'從'MainVM'獲取服務。 – Jon 2011-03-23 14:01:11

+0

,但是MainVM創建了像AdminVM/PlannerVM/BillingVM等其他虛擬機/控制器......它們需要手動創建,因爲當我在它們之間切換時,它們需要彼此的數據。 – msfanboy 2011-03-23 14:22:47