문제

XAML에서 어린이보기를 정의하는 부모보기가 있습니다. 어린이보기에는 a DependencyProperty 그것은 부모보기의 뷰 모델에 묶여 있습니다. 그러나 그 값은 Child View의 뷰 모델에서도 필요합니다.

<custom:Parent>
  <custom:Child ChildId="{Binding ParentFooId}" ... />
</custom:Parent>

ChildId 의존성 속성으로 구현됩니다 ChildView 제어. 만약 ChildViewModel 필요합니다 ParentFooId, 적절한 MVVM을 얻는 방법은 무엇입니까?

나는 캐스팅하고 싶지 않다 DataContextChildView a ChildViewModel 그리고 a에서 가치를 설정하십시오 OnChildIdChanged 핸들러 ChildView. 그것은 나에게 MVVM-ish처럼 보이지 않습니다.

내가 생각한 다른 대안은 새로운 ChildViewModel 값으로 DataContext 에서 OnParentFooIdChanged 이벤트 ( ParentViewModel); 그러나 ViewModels가보기에 잊혀져야하기 때문에 그것은 옳지 않은 것 같습니다 (따라서 아무것도 모릅니다. DataContext에스).

내가 명백한 것을 놓치고있는 것 같다 ...

도움이 되었습니까?

해결책

질문을 올바르게 이해하면 부모보기 모델 내에서 자식보기 모델을 만들고 부모보기 모델을 전달하고 참조하면됩니다. 이렇게하면 아동 뷰 모델에서 부모보기 모델의 모든 속성을 참조하고 아동 뷰에서 어느 쪽이든 바인딩 할 수 있습니다.

다른 팁

단순히 종속성 속성에서 뷰 모델로 데이터를 전달하려는 경우 PropertyChangedCallback 이벤트를 사용합니다. 변경된 데이터를 뷰 모델로 전송하는 핸들러를 추가하십시오. 그래도 당신의 의도를 오해하고있을 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top