내 응용 프로그램 (MVVM 아키텍처 기반 WPF 응용 프로그램)에서는 ICommand
을 서비스으로 많이 사용합니다. 이러한 명령 중 일부는 메뉴 항목, 도구 모음, 상태 표시 줄 등에 바인딩되어 각 컨테이너보기 모델에 주입 될 수 있습니다. 자, 그들 중 일부는 예를 들어 쉘에있는 데이터를 조작 할 수 있으므로 쉘은 그 종속물입니다. 쉘도 컨테이너 (메뉴, 상태 표시 줄 ...)를 호스트하기 때문에 순환 종속성을 얻습니다. (쉘 -> 메뉴 -> 명령 -> 쉘).순환 종속성 및 제어 반전 -이를 해결하는 방법은 무엇입니까?
현재 MEF를 사용하여 응용 프로그램을 작성하므로 문제는 재산 또는 개인 회원 가입으로 해결할 수 있지만 대부분의 경우이 서비스는 전혀 도움이되지 않습니다. 부모에게이 의존성이 필요함을 말해 주지만).
내 질문은이 같은 문제를 해결하는 일반적인 방법은 무엇 : 나는 MEF를 사용한 적이
class Shell : IShell
.ctor(IMenu)
class Menu : IMenu
.ctor(ICommand[])
class ExitCommand : ICommand
.ctor(IShell)
상위 뷰 모델 ('Shell')에서 명령을 호출하거나 전역 적으로 사용할 수있는 두 가지 명령은'EventAggregator' 구현 ('Prism'의'PubSubEvent') 또는'Prism'의'CompositeCommand'입니다.). – mechanic
"쉘"이란 무엇입니까? 더 설명해 주시겠습니까? – Joe
@Joe 셸은 주로 다른 모든 뷰 구성 요소의 컨테이너 역할을하는 뷰 모델입니다. – artganify