Visão geral de TreeView
O TreeView controle fornece uma maneira de exibir informações em uma estrutura hierárquica usando nós recolhíveis. Este tópico apresenta os TreeView controles e TreeViewItem e fornece exemplos simples de seu uso.
O que é um TreeView?
TreeView é um ItemsControl que aninha os itens usando TreeViewItem controles. O exemplo a seguir cria um TreeView.
<TreeView Name="myTreeViewEvent" >
<TreeViewItem Header="Employee1" IsSelected="True">
<TreeViewItem Header="Jesper Aaberg"/>
<TreeViewItem Header="Employee Number">
<TreeViewItem Header="12345"/>
</TreeViewItem>
<TreeViewItem Header="Work Days">
<TreeViewItem Header="Monday"/>
<TreeViewItem Header="Tuesday"/>
<TreeViewItem Header="Thursday"/>
</TreeViewItem>
</TreeViewItem>
<TreeViewItem Header="Employee2">
<TreeViewItem Header="Dominik Paiha"/>
<TreeViewItem Header="Employee Number">
<TreeViewItem Header="98765"/>
</TreeViewItem>
<TreeViewItem Header="Work Days">
<TreeViewItem Header="Tuesday"/>
<TreeViewItem Header="Wednesday"/>
<TreeViewItem Header="Friday"/>
</TreeViewItem>
</TreeViewItem>
</TreeView>
Criando um TreeView
O TreeView controle contém uma hierarquia de TreeViewItem controles. Um TreeViewItem controle é um que tem um HeaderHeaderedItemsControl e uma Items coleção.
Se você estiver definindo um usando XAML (Extensible Application Markup Language), poderá definir explicitamente o Header conteúdo de um TreeViewTreeViewItem controle e os itens que compõem sua coleção. A ilustração anterior demonstra esse método.
Você também pode especificar um como uma fonte de dados e, em seguida, especificar um ItemsSourceHeaderTemplate e ItemTemplate para definir o TreeViewItem conteúdo.
Para definir o layout de um TreeViewItem controle, você também pode usar HierarchicalDataTemplate objetos. Para obter mais informações e um exemplo, consulte Usar SelectedValue, SelectedValuePath e SelectedItem.
Se um item não for um controle, ele será automaticamente incluído por um TreeViewItemTreeViewItem controle quando o TreeView controle for exibido.
Expandindo e Recolhendo um TreeViewItem
Se o usuário expandir um TreeViewItem, a IsExpanded propriedade será definida como true
. Você também pode expandir ou recolher uma TreeViewItem ação direta do usuário sem nenhuma ação direta definindo a IsExpanded propriedade como true
(expandir) ou false
(recolher). Quando essa propriedade é alterada, ocorre um Expanded evento OR Collapsed .
Quando o método é chamado em um TreeViewItem controle, o TreeViewItemBringIntoView e seus controles pai TreeViewItem expandem. Se um TreeViewItem não estiver visível ou parcialmente visível, os rolos TreeView para torná-lo visível.
Seleção de TreeViewItem
Quando um usuário clica em um TreeViewItem controle para selecioná-lo, o Selected evento ocorre e sua IsSelected propriedade é definida como true
. O TreeViewItem também passa a ser o TreeViewSelectedItem do controle. Por outro lado, quando a seleção muda de um TreeViewItem controle, seu Unselected evento ocorre e sua IsSelected propriedade é definida como false
.
A SelectedItem propriedade no TreeView controle é uma propriedade somente leitura, portanto, você não pode defini-la explicitamente. A SelectedItem propriedade será definida se o usuário clicar em um TreeViewItem controle ou quando a IsSelected propriedade estiver definida como true
no TreeViewItem controle.
Use a SelectedValuePath propriedade para especificar um SelectedValue de um SelectedItemarquivo . Para obter mais informações, consulte Usar SelectedValue, SelectedValuePath e SelectedItem.
Você pode registrar um manipulador de eventos no SelectedItemChanged evento para determinar quando uma seleção é TreeViewItem alterada. O RoutedPropertyChangedEventArgs<T> que é fornecido ao manipulador de eventos especifica o , que é a seleção anterior e o OldValueNewValue, que é a seleção atual. O valor poderá ser null
se o aplicativo ou o usuário não tiver feito uma seleção anterior ou atual.
Estilo TreeView
O estilo padrão para um controle o coloca dentro de um objeto que contém um TreeViewStackPanelScrollViewer controle. Quando você define as Width propriedades e Height para um TreeView, esses valores são usados para dimensionar o objeto que exibe o StackPanelTreeView. Se o conteúdo a ser exibido for maior que a área de exibição, um ScrollViewer será exibido automaticamente para que o usuário possa rolar pelo TreeView conteúdo.
Para personalizar a aparência de um controle, defina a Style propriedade como um TreeViewItemStylearquivo .
O exemplo a seguir mostra como definir os Foreground valores de propriedade e FontSize para um controle usando um StyleTreeViewItem arquivo .
<Style TargetType="{x:Type TreeViewItem}">
<Setter Property="Foreground" Value="Blue"/>
<Setter Property="FontSize" Value="12"/>
</Style>
Adicionando imagens e outros tipos de conteúdo aos itens do TreeView
Você pode incluir mais de um objeto no Header conteúdo de um TreeViewItemarquivo . Para incluir vários objetos no Header conteúdo, coloque os objetos dentro de um controle de layout, como um Panel ou StackPanel.
O exemplo a seguir mostra como definir o de a HeaderTreeViewItem como um e TextBlock que são ambos incluídos em um CheckBoxDockPanel controle.
<TreeViewItem>
<TreeViewItem.Header>
<DockPanel>
<CheckBox/>
<TextBlock>
TreeViewItem Text
</TextBlock>
</DockPanel>
</TreeViewItem.Header>
</TreeViewItem>
O exemplo a seguir mostra como definir um que contém um e um que estão incluídos em um DataTemplateImageTextBlockDockPanel controle. Você pode usar um para definir o HeaderTemplate ou ItemTemplate para um TreeViewItemDataTemplate arquivo .
<DataTemplate x:Key="NewspaperTVItem">
<DockPanel>
<Image Source="images\icon.jpg"/>
<TextBlock VerticalAlignment="center" Text ="{Binding Path=Name}"/>
</DockPanel>
</DataTemplate>
Confira também
.NET Desktop feedback
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de