WPF--TreeView对于自定义TreeViewItem的小应用

今天半天都被 TreeView里的SelectedItemChanged事件传过来的e参数困扰

private void fileviewer_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs<object> e)

因为自定义了一个继承自TreeViewItem的类,想要多给他附上一些属性,以便自己使用

public class FileViewer : TreeViewItem
    {
        #region adress

        public string Address
        {
            get { return (string)GetValue(AddressProperty); }
            set { SetValue(AddressProperty, value); }
        }

        // Using a DependencyProperty as the backing store for Address.  This enables animation, styling, binding, etc...
        public static readonly DependencyProperty AddressProperty =
            DependencyProperty.Register("Address", typeof(string), typeof(FileViewer), new PropertyMetadata(""));


        #endregion
    }

但是发现

private void fileviewer_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs<object> e)
//这个参数e,不能够强制转换成我自定义FileViewer类,我一直以为继承自treeview就可以转换的,找了半天的解决方法;

最后发现只需要在TreeView里设置ItemContainerStyle就可以了,绑定你要使用继承自TreeViewItem的自定义类就可以了;

        <TreeView x:Name="fileviewer" Grid.Row="3" Grid.Column="0" ItemContainerStyle="{Binding FileViewer}"  SelectedItemChanged="fileviewer_SelectedItemChanged"/>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值