2011-02-12 3 views
1

두 개의 사용자 정의 사용자 정의 컨트롤 (작성한)이 포함 된 간단한 주 창을 사용하고 있습니다. 해당 사용자 컨트롤에는 MVView 패턴을 사용하는 ModelView 코드 파일이 있습니다. 각 ModelView 파일에는 단일 명령 (및 Execute 및 CanExecute의 명령 구현)이 포함되어 있습니다. 문제는 내가 MainWindow를 통해 각 명령을 활성화해야 할 때 주 창에 해당 사용자 지정 사용자 정의 컨트롤이 저장 됨) DataContext를 변경해야합니다. 의 주 창 현재 포커스가있는 컨트롤의 ViewModel 다른 사람은 명령을 실행할 수 없습니다 (UserControl.xaml 내부의 명령 바인딩은 명령을 찾을 수 없습니다). MainContext를 변경하기 위해 집중된 UserControl을 추적 한 후에는 MainWindow DataContext를 변경하는 것이 아니라고 생각합니다. 전에 이런 종류의 문제에 직면 한 사람이 있습니까 ??UserControls를 사용할 때 데이터 컨텍스트를 변경하십시오.

감사합니다.

답변

2

이 문제를 해결하는 방법은 기본 창의 ViewModel을 만들고이 VM에 이전에 만든 각 ViewModel에 대해 하나씩 두 개의 속성을 추가하는 것입니다.

이렇게하면 새 VM을 Window의 DataContext에 할당하고 각 사용자 정의 컨트롤의 DataContext를 속성 중 하나에 바인딩 할 수 있습니다.

사용하려는 올바른 VM에 명령을 입력하십시오. 이것이 의미가 있습니까?

BTW : ModelView를 ViewModel이라고 부릅니다.

관련 문제