Add Event handler in Panel Resource
<Window x:Class="WpfApplication1.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="WPF" Height="200" Width="300">
<DockPanel LastChildFill="True">
<DockPanel.Resources>
<Style TargetType="{x:Type TreeViewItem}">
<EventSetter Event="Selected" Handler="TreeViewItem_Selected" />
</Style>
</DockPanel.Resources>
<Button Click="Button_Click" DockPanel.Dock="Bottom" Content="Show Selected" MaxHeight="23" MaxWidth="100" />
<TreeView FontSize="16" Name="tvTree">
<TreeViewItem Header="A" IsExpanded="True">
<TreeViewItem Header="1">
<TreeViewItem Header="2" />
<TreeViewItem Header="3" />
</TreeViewItem>
<TreeViewItem Header="B" IsExpanded="True">
<TreeViewItem Header="11" />
<TreeViewItem Header="22" />
</TreeViewItem>
</TreeViewItem>
<TreeViewItem Header="C">
<TreeViewItem Header="E">
<TreeViewItem Header="111" />
<TreeViewItem Header="222" />
<TreeViewItem Header="333" />
</TreeViewItem>
<TreeViewItem Header="F">
<TreeViewItem Header="1111" />
<TreeViewItem Header="2222" />
<TreeViewItem Header="333" />
</TreeViewItem>
</TreeViewItem>
</TreeView>
</DockPanel>
</Window>
//File:Window.xaml.cs
using System;
using System.Windows;
using System.Windows.Controls;
namespace WpfApplication1
{
public partial class Window1 : Window
{
public Window1()
{
InitializeComponent();
}
private void TreeViewItem_Selected(object sender, RoutedEventArgs e)
{
TreeViewItem item = sender as TreeViewItem;
if (item == e.OriginalSource)
{
Console.WriteLine(item.Header);
Console.WriteLine(item.Items.Count);
}
else
{
Console.WriteLine("Parent of selected");
Console.WriteLine(item.Header);
Console.WriteLine(item.Items.Count);
}
}
private void Button_Click(object sender, RoutedEventArgs e)
{
TreeViewItem item = tvTree.SelectedItem as TreeViewItem;
if (item != null)
{
MessageBox.Show("Item selected: " + item.Header, Title);
}
else
{
MessageBox.Show("No item selected", Title);
}
}
}
}
Related examples in the same category