Как привязать команду к событию SelectedItemChanged TreeView
Существует TreeView Control.
<TreeView Name="ProductsHierarchy" FontFamily="Arial"
Background="White" Margin="2"
FontSize="12" SelectedItemChanged ="ProductsHierarchy_SelectedItemChanged">
Есть ли способ связать команду для события SelectedItemChanged в древовидной структуре, избегая кода позади обработчика событий?
1 ответ
Решение
Попробуйте EventToCommand MVVM Toolkit.
"Встроенный" (из Blend) подход заключается в использовании интерактивности
<TreeView Name="ProductsHierarchy" FontFamily="Arial"
Background="White" Margin="2"
FontSize="12" SelectedItemChanged ="ProductsHierarchy_SelectedItemChanged">
<i:Interaction.Triggers>
<i:EventTrigger EventName="SelectedItemChanged">
<i:InvokeCommandAction Command="{Binding SelectedItemChangedCommand}" CommandParameter="argument"/>
</i:EventTrigger>
</i:Interaction.Triggers>
</TreeView>
Вы должны включить пространство имен:
xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
Недостатком здесь является то, что у вас нет доступа к EventArgs
, Вот решение (это на польском языке, но примеры кода в значительной степени говорят сами за себя).