Data binding to SelectedItem in a WPF Treeview

后端 未结 20 1088
南方客
南方客 2020-11-22 05:39

How can I retrieve the item that is selected in a WPF-treeview? I want to do this in XAML, because I want to bind it.

You might think that it is SelectedItem

20条回答
  •  独厮守ぢ
    2020-11-22 06:27

    Well, I found a solution. It moves the mess, so that MVVM works.

    First add this class:

    public class ExtendedTreeView : TreeView
    {
        public ExtendedTreeView()
            : base()
        {
            this.SelectedItemChanged += new RoutedPropertyChangedEventHandler(___ICH);
        }
    
        void ___ICH(object sender, RoutedPropertyChangedEventArgs e)
        {
            if (SelectedItem != null)
            {
                SetValue(SelectedItem_Property, SelectedItem);
            }
        }
    
        public object SelectedItem_
        {
            get { return (object)GetValue(SelectedItem_Property); }
            set { SetValue(SelectedItem_Property, value); }
        }
        public static readonly DependencyProperty SelectedItem_Property = DependencyProperty.Register("SelectedItem_", typeof(object), typeof(ExtendedTreeView), new UIPropertyMetadata(null));
    }
    
    
    

    and add this to your xaml:

     
     .....
     
    

    提交回复
    热议问题