2012-12-30 1 views
0

저는 MVVM을 배우는 학생이며 WPF 응용 프로그램을 만들고 있습니다. ViewModel_1에서 ViewModel_2를 인스턴스화해야 할 때 제 문제가 발생합니다. ViewModel_2는 IoC 컨테이너에 등록 된 XService에 따라 다릅니다. 그래서 컨테이너에 ViewModel_2를 해결하도록 요청하면 필요한 서비스가 만들어져 생성자에 주입되고 ViewModel이 제공됩니다.ViewModel의 IoCContainer에서 객체 인스턴스 가져 오기

제 질문은 : 컨테이너를 라이프 사이클을 관리하는 부트 스트 래퍼가 아니라 어떤 클래스에서도 참조하면 안된다는 것입니다. ViewModel_2에 누가 ViewModel_1을 부여합니까?

내가 생각할 수있는 유일한 해결책은 ViewModel_1의 ctor에 Lazy를 넣고 필요한 경우 액세스하는 것입니다. 그러나 거기에서 관리 할 단일 VM 이상인 경우 어떻게해야합니까 ??

도와 주시면 감사하겠습니다. 대단히 감사합니다. 새해 복 많이 받으세요! =)

답변

0

제가 알고 있듯이 ViewModel_2 속성을 포함하는 ViewModel_1이 있습니다. 그리고 ViewModel_2에 DI를 주입해야합니다. 이 간단한 경우 ViewModel_1의 생성자에 ViewModel_2을 삽입 할 수 있습니다.

"내가 관리 할 VM이 두 개 이상이면 어떻게 될까요?" 어떤 VM을 찾으셨습니까? 거기 어디야"? ViewModel_1ViewModel_2 코드를 게시하면 문제를 이해하는 데 도움이됩니다.

+0

Kirill에게 답장을 보내 주셔서 감사합니다. VM2는 VM1의 속성 일 필요는 없지만 VM1에서 생성되어 무언가를 수행하는 데 사용되는 VM입니다. VM2에서 만드는 VM2 이상을 보유하고 있는지 궁금합니다. 추가 VM마다 ctor 매개 변수를 추가해야합니까? 아니면 더 간단한 솔루션이 있습니까? 다시 한 번 감사드립니다. – Sergio

+0

그리고 죄송 합니다만 "ViewModel_2를 ViewModel_1의 컨트롤러에 주입 할 수 있습니다"라는 의미는 무엇입니까? – Sergio

+0

* 생성자. 그것의 오타 일 –