1

有一个 Treeview 控件。

 <TreeView Name="ProductsHierarchy" FontFamily="Arial"  
                          Background="White" Margin="2" 
                          FontSize="12" SelectedItemChanged ="ProductsHierarchy_SelectedItemChanged">

有没有办法为树视图的 SelectedItemChanged 事件绑定命令,避免事件处理程序后面的代码?

4

1 回答 1

2

试试MVVM Toolkit 的 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. 这是解决方案(它是波兰语,但代码示例几乎不言自明)。

于 2012-12-12T11:06:25.043 回答