MyTetra Share
Делитесь знаниями!
Рукодельный TreeView с SelectedItem
Время создания: 20.04.2020 23:17
Текстовые метки: TreeView
Раздел: Компьютер - C# - WPF - XAML - TreeView
Запись: Kozlov-AE/Tetra/master/base/15874138710wbor12qnk/text.html на raw.githubusercontent.com

В Заводском TreeView нет возможности прибиндиться к выделенному узлу. Проблема решается созданием своего контролла, унаследованного от стандартного дерева. Создаем новый класс и вставляем туда код:


using System.Windows;

using System.Windows.Controls;


namespace OrgInfoSystemFW.View

{

class ExtendedTreeView : TreeView

{

public ExtendedTreeView()

: base()

{

this.SelectedItemChanged += new RoutedPropertyChangedEventHandler<object>(___ICH);

}


void ___ICH(object sender, RoutedPropertyChangedEventArgs<object> 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));

}

}


Заполенение дерева (заводское так же заполняется):

<!--Дерево департаментов-->

<local:ExtendedTreeView Grid.Row="1" Grid.Column="0"

x:Name="DepartamensTree"

ItemsSource="{Binding Deps}"

SelectedItem_="{Binding SelectedDepartament, Mode=TwoWay}"

ScrollViewer.HorizontalScrollBarVisibility="Auto"

ScrollViewer.VerticalScrollBarVisibility="Auto"

ScrollViewer.CanContentScroll="True">

<local:ExtendedTreeView.ItemTemplate>

<HierarchicalDataTemplate ItemsSource="{Binding SubDepartaments}">

<TextBlock Text="{Binding Path=Title}"/>

</HierarchicalDataTemplate>

</local:ExtendedTreeView.ItemTemplate>

</local:ExtendedTreeView>


Чтобы получить доступ к выделенному элементу из кода XAML, нужно совершить биндинг:

ItemsSource="{Binding ElementName=DepartamensTree, Path=SelectedValue.Employees}">

 
MyTetra Share v.0.59
Яндекс индекс цитирования