2011-03-23 3 views
0

MEFedMVVM에서 자동으로 일부 서비스를 주입하는 MainViewModel이 있습니다.주입 된 서비스를 여러 ViewModel에 놓으십시오.

이 MainVM은 다른 ViewModels/Controllers를 생성합니다. 그 다시 ...

그것을 확인/나쁜/좋은에서 서비스 가을 저점을 수 있도록하는 것입니다 ... ObservableCollections를 작성하고 일부 서비스 위에서 컬렉션에 넣어 viewmodels의 생성자를 통과

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

다른 xVM에요? 또는 해당 VM에서 직접 필요한 코드에서 서비스를 검색해야합니까?

답변

0

서비스의 성격에 따라 다릅니다. 서비스가 "싱글 톤"인 경우 (즉, SomeService의 서비스가 하나만있을 수 있음) 캐스 캐 이드하는 것이 이해가되지 않습니다. 이를 필요로하는 코드를 통해 MEF가 자동으로 의존성을 해결할 수 있습니다.

단일 서비스의 인스턴스가 여러 개 존재할 수있는 경우 캐스 캐 이드가 적합합니다.

+0

잘 서비스는 MEFedMVVM의 싱글 톤입니다. 하지만 ViewModels/컨트롤러 및 ViewModels MEF에 의해 만들어진 모델을 래핑하는 있지만 그들에게 서비스를 전달해야합니다 그리고 지금 나는 계단식을 통해 ... 그냥 ViewMOdel 서비스를 만들거나 그것에 대해 알고 안된다 생각 ... 그냥 주입 해 ... – msfanboy

+0

@msfanboy : 당신이 묘사하는 것을 이해하지 못하지만, 우리는 동의하지 않습니다 : MEF가 모든 ViewModels에 서비스를 주입하게하십시오. 'AdminVM'은'MainVM'에서 서비스를받을 필요가 없습니다. – Jon

+0

하지만 MainVM은 AdminVM/PlannerVM/BillingVM 등의 다른 VM/컨트롤러를 만듭니다. 서로 전환 할 때 서로 데이터가 필요하기 때문에 수동으로 만들어야합니다. – msfanboy

관련 문제