WPF的TreeView控件---treeviewitem的selected事件和treeview的SelectedItemChanged选择

今天想做一个文件浏览器,想把选中项的信息提取出来,就自然而然的想到用treeview,但是当给每个treeviewitem添加selected事件后,当你选中的是儿子结点的时候,父亲节点的selected也会触发。

//xmal代码
<TreeView Grid.Row="3" Grid.Column="0" >
            <TreeViewItem Header="父亲" Selected="TreeViewItem_Selected">
                <TreeViewItem Header="儿子" Selected="TreeViewItem_Selected" >
                    <TreeViewItem Header="孙子">
                        <TreeViewItem Header="曾孙"></TreeViewItem>
                    </TreeViewItem>
                </TreeViewItem>
            </TreeViewItem>
            <TreeViewItem Header="叔叔">
                
            </TreeViewItem>
        </TreeView>
//事件
private void TreeViewItem_Selected(object sender, RoutedEventArgs e)
        {
            var demo = (TreeViewItem)sender;
            Console.WriteLine(demo.Header);
        }
正确的做法是 :
<TreeView Grid.Row="3" Grid.Column="0" SelectedItemChanged="TreeView_SelectedItemChanged">
在Treeview里添加SelectedItemChanged;

SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs<object> e)

参数 e 是一个结构体,里面的 oldvalue 指的是之前的selecteditem,newvalue指的是现在的选择的selecteditem; 把newvalue强制转换成treeviewitem就行了;
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值