私は遅延ロードツリービューを実装しており、Expandedイベントを処理する必要があります。私はそれをViewModelで直接やりたいと思います。私は、EventTriggerをフックアップしている:ない予想通り、これは動作しますが、OriginalSourceはツリービューアイテムですMVVM wpf TreeViewの処理方法拡張イベント
<i:Interaction.Triggers>
<i:EventTrigger EventName="Expanded">
<interactivity:InvokeCommandAction Command="{Binding HandleExpandCmd}" TriggerParameterPath="OriginalSource" />
</i:EventTrigger>
</i:Interaction.Triggers>
、と私はに好む私のViewModelでSystem.Windows.Controlsが含まれます。
また、コードビハインドでイベントを処理し、TreeViewItemのDataContextをViewModelに渡すこともできます。 (もちろん、DataContextはViewModelと連携する必要があります)
TVIのDataContextではなく、DataContextを渡すTriggerParameterPathで使用できる構文はありますか?
おかげ---
を使用でき、<対話:InvokeCommandActionコマンド= "{HandleExpandCmdバインディング}" CommandParameter = "{バインディング}" /> –
@Ayyappanサブラマニアン - おかげで、それはツリービューのためのViewModelを取得し、ありませんTVIにバインドされた項目のViewModel – Number8