【问题标题】:How to bind a Command to SelectedItemChanged event of a TreeView如何将命令绑定到 TreeView 的 SelectedItemChanged 事件
【发布时间】:2012-12-12 05:18:48
【问题描述】:
有一个 Treeview 控件。
<TreeView Name="ProductsHierarchy" FontFamily="Arial"
Background="White" Margin="2"
FontSize="12" SelectedItemChanged ="ProductsHierarchy_SelectedItemChanged">
有没有办法为树视图的 SelectedItemChanged 事件绑定命令,避免事件处理程序后面的代码?
【问题讨论】:
标签:
wpf
treeview
command
selecteditemchanged
【解决方案1】:
试试MVVM Toolkit's EventToCommand。
“内置”(来自 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。这是solution(它是波兰语,但代码示例几乎不言自明)。