MVVM wpf TreeView 如何处理 Expanded 事件

MVVM wpf TreeView how to handle Expanded event

我正在实施延迟加载树视图,需要处理 Expanded 事件。我想直接在 ViewModel 中进行。我连接了一个 EventTrigger:

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

虽然这按预期工作,但 OriginalSource 是一个 TreeViewItem,我更愿意在我的 ViewModel 中包含 System.Windows.Controls。
或者,我可以在代码隐藏中处理事件,并将 TreeViewItems 的 DataContext 传递给 ViewModel。 (当然,DataContext 是 ViewModel 需要处理的。)
有没有我可以在传递 TVI 的 DataContext 而不是 TVI 本身的 TriggerParameterPath 中使用的语法?
谢谢---

我建议将 TreeViewItemIsExpanded 属性 绑定到您的 ViewModel 中的一个。然后你可以在 ViewModel 中随心所欲地处理它!

Here is an example of how to do that.