2016-07-13 4 views
0

지연로드 트리 뷰를 구현 중이므로 Expanded 이벤트를 처리해야합니다. 내가 ViewModel에서 직접하고 싶습니다. 나는 EventTrigger 매여있다 : 예상대로이 작동하는 동안MVVM wpf TreeView 처리 방법 확장 이벤트

<i:Interaction.Triggers> 
    <i:EventTrigger EventName="Expanded"> 
     <interactivity:InvokeCommandAction Command="{Binding HandleExpandCmd}" TriggerParameterPath="OriginalSource" /> 
    </i:EventTrigger> 
</i:Interaction.Triggers> 

에서, OriginalSource는 TreeViewItem입니다, 그리고 하지 내 뷰 모델에서 System.Windows.Controls을 포함에 내가 선호하는 것이다.
또는 코드 숨김으로 이벤트를 처리하고 TreeViewItems의 DataContext를 ViewModel에 전달할 수 있습니다. (물론 DataContext가 ViewModel과 함께 사용해야합니다.)
TVI의 DataContext 대신 TriggerParameterPath에서 사용할 수있는 구문이 있습니까?
감사합니다 ---

+0

당신은 사용할 수 있습니다 <상호 작용 : InvokeCommandAction 명령 = "{HandleExpandCmd 바인딩}"CommandParameter =/"{바인딩}"> –

+0

@Ayyappan Subramanian - 감사합니다,하지만 즉, 트 리뷰의 뷰 모델을 얻을 수 없습니다 TVI에 바인드되고있는 아이템의 ViewModel – Number8

답변

0

난 당신의 ViewModel 하나에 TreeViewItemIsExpanded 속성을 결합하는 것이 좋습니다 것입니다. 그런 다음 원하는대로 ViewModel에서 처리 할 수 ​​있습니다!

Here is an example of how to do that.

+0

Hutter : 고마워요. OnPropertyChanged를 통해 TVI의 VM에서 변경 사항을 버블 링하고 VM에서 TreeView를 처리합니다. – Number8