Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Het besturingselement TreeView geeft informatie weer in een hiërarchische structuur met behulp van samenvouwbare knooppunten. In dit artikel worden de TreeView en TreeViewItem besturingselementen geïntroduceerd en vindt u voorbeelden van het gebruik ervan.
De volgende illustratie is een voorbeeld van een TreeView-bedieningselement met geneste TreeViewItem-bedieningselementen.
Wat is een TreeView?
TreeView is een ItemsControl die de items nestelt met TreeViewItem bedieningselementen. In het volgende voorbeeld wordt een TreeView gemaakt.
<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>
Een TreeView maken
Het TreeView besturingselement bevat een hiërarchie van TreeViewItem besturingselementen. Een TreeViewItem besturingselement is een HeaderedItemsControl met een Header en een Items verzameling.
Als u een TreeView definitie definieert met behulp van Extensible Application Markup Language (XAML), kunt u expliciet de Header inhoud van een TreeViewItem besturingselement definiëren en de items waaruit de verzameling bestaat. In de vorige afbeelding ziet u deze methode.
U kunt ook een ItemsSource als gegevensbron opgeven en vervolgens een HeaderTemplate en ItemTemplate om de TreeViewItem inhoud te definiëren.
Als u de indeling van een TreeViewItem besturingselement wilt definiëren, kunt u ook HierarchicalDataTemplate objecten gebruiken. Zie SelectedValue, SelectedValuePath en SelectedItem gebruiken voor meer informatie en een voorbeeld.
Als een item geen TreeViewItem besturingselement is, wordt het automatisch ingesloten door een TreeViewItem besturingselement wanneer het TreeView besturingselement wordt weergegeven.
Een TreeViewItem uitvouwen en samenvouwen
Als de gebruiker een TreeViewItemuitvouwt, wordt de IsExpanded eigenschap ingesteld op true. U kunt ook een TreeViewItem uitvouwen of samenvouwen zonder directe gebruikersactie door de eigenschap IsExpanded in te stellen op true (uitvouwen) of false (samenvouwen). Wanneer deze eigenschap wordt gewijzigd, vindt er een Expanded of Collapsed gebeurtenis plaats.
Wanneer de BringIntoView-methode wordt aangeroepen op een TreeViewItem-besturingselement, worden de TreeViewItem- en de ouder-TreeViewItem-besturingselementen uitgevouwen. Als een TreeViewItem niet zichtbaar of slechts gedeeltelijk zichtbaar is, scrolt de TreeView automatisch om het zichtbaar te maken.
Een TreeViewItem selecteren
Wanneer een gebruiker klikt op een TreeViewItem besturingselement om het te selecteren, vindt de Selected gebeurtenis plaats en wordt de IsSelected eigenschap ingesteld op true. Het TreeViewItem wordt ook de SelectedItem van de TreeView besturing. Wanneer de selectie daarentegen verandert van een TreeViewItem besturingselement, vindt de Unselected gebeurtenis plaats en wordt de IsSelected eigenschap ingesteld op false.
De SelectedItem eigenschap op het TreeView besturingselement is een alleen-lezen eigenschap, dus u kunt deze niet expliciet instellen. De SelectedItem eigenschap wordt ingesteld als de gebruiker op een TreeViewItem besturingselement klikt of wanneer de IsSelected eigenschap is ingesteld op true op het TreeViewItem besturingselement.
Gebruik de SelectedValuePath eigenschap om een SelectedValue van een SelectedItem. Zie SelectedValue, SelectedValuePath en SelectedItem gebruiken voor meer informatie.
U kunt een gebeurtenis-handler registreren voor de SelectedItemChanged gebeurtenis om te bepalen wanneer een geselecteerde TreeViewItem verandert. De RoutedPropertyChangedEventArgs<T> die aan de gebeurtenis-handler wordt verstrekt, specificeert de OldValue, dat de vorige selectie is en de NewValue, die de huidige selectie is. Een van beide waarden kan zijn null als de toepassing of gebruiker geen vorige of huidige selectie heeft gemaakt.
Een TreeView stylen
De standaardstijl voor een TreeView besturingselement plaatst het in een StackPanel object dat een ScrollViewer besturingselement bevat. Wanneer u de Width en Height eigenschappen voor een TreeView instelt, worden deze waarden gebruikt om de grootte van het StackPanel-object aan te passen dat de TreeView weergeeft. Als de weer te geven inhoud groter is dan het weergavegebied, wordt er automatisch een ScrollViewer weergave weergegeven, zodat de gebruiker door de TreeView inhoud kan bladeren.
Als u het uiterlijk van een TreeViewItem besturingselement wilt aanpassen, stelt u de Style eigenschap in op een aangepast Style.
In het volgende voorbeeld ziet u hoe u de Foreground en FontSize eigenschapswaarden voor een TreeViewItem besturingselement instelt met behulp van een Style.
<Style TargetType="{x:Type TreeViewItem}">
<Setter Property="Foreground" Value="Blue"/>
<Setter Property="FontSize" Value="12"/>
</Style>
Afbeeldingen en andere inhoud toevoegen aan TreeView-items
U kunt meer dan één object opnemen in de Header inhoud van een TreeViewItem. Als u meerdere objecten in Header inhoud wilt opnemen, plaatst u de objecten in een indelingsbesturingselement, zoals een Panel of StackPanel.
In het volgende voorbeeld ziet u hoe u de Header van een TreeViewItem definieert als een CheckBox en TextBlock, die beide binnen een DockPanel controle-element zijn opgenomen.
<TreeViewItem>
<TreeViewItem.Header>
<DockPanel>
<CheckBox/>
<TextBlock>
TreeViewItem Text
</TextBlock>
</DockPanel>
</TreeViewItem.Header>
</TreeViewItem>
In het volgende voorbeeld ziet u hoe u een DataTemplate controle definieert die een Image en een TextBlock bevat die in een DockPanel controle zijn opgenomen. U kunt een DataTemplate gebruiken om de HeaderTemplate of ItemTemplate voor een TreeViewItem in te stellen.
<DataTemplate x:Key="NewspaperTVItem">
<DockPanel>
<Image Source="images\icon.jpg"/>
<TextBlock VerticalAlignment="center" Text ="{Binding Path=Name}"/>
</DockPanel>
</DataTemplate>
Algemene taken
De volgende tabel bevat algemene taken voor het werken met het besturingselement TreeView:
| Title | Description |
|---|---|
| Eenvoudige of complexe structuurweergaven maken | Informatie over het maken van TreeView-besturingselementen met verschillende structuren. |
| SelectedValue, SelectedValuePath en SelectedItem gebruiken | Meer informatie over het werken met selectie-eigenschappen in een TreeView. |
| Een TreeView verbinden met gegevens met een onbepaalde diepte | Leer hoe u een TreeView koppelt aan hiërarchische gegevens met onbekende diepte. |
| De prestaties van een TreeView verbeteren | Meer informatie over het optimaliseren van TreeView-prestaties. |
| Een TreeViewItem zoeken in een TreeView | Informatie over het vinden van een specifieke TreeViewItem in een TreeView. |
Verwante secties
Overzicht van gegevensbindingen
Referentie
Stijlen en sjablonen
U kunt de standaardinstelling ControlTemplate wijzigen om het TreeView besturingselement een uniek uiterlijk te geven. Zie Wat zijn stijlen en sjablonen voor meer informatie en hoe u een sjabloon voor een besturingselement maakt.
Onderdelen
Het TreeView besturingselement heeft geen benoemde onderdelen.
Wanneer u een ControlTemplate voor een TreeView maakt, kan uw sjabloon mogelijk een ItemsPresenter binnen een ScrollViewer bevatten. (ItemsPresenter geeft elk item in het TreeView weer; ScrollViewer maakt scrollen binnen het besturingselement mogelijk). Als het ItemsPresenter niet het directe kind van de ScrollVieweris, moet u de ItemsPresenter naam opgeven. ItemsPresenter
Visuele statussen
De volgende tabel bevat de visuele statussen voor het TreeView besturingselement.
| VisualState-naam | VisualStateGroup-naam | Description |
|---|---|---|
| Geldig | Validatiestatussen | Het besturingselement maakt gebruik van de Validation klasse en de Validation.HasError gekoppelde eigenschap is false. |
| Ongeldige focus | Validatiestatussen | De Validation.HasError gekoppelde eigenschap is true en de controle is gefocust. |
| Ongeldige ongeconcentreerdheid | Validatiestatussen | De Validation.HasError gekoppelde eigenschap is true en de controle heeft geen focus. |
TreeViewItem-onderdelen
De volgende tabel bevat de benoemde onderdelen voor het TreeViewItem besturingselement.
| Onderdeel | Typologie | Description |
|---|---|---|
| PART_Header | FrameworkElement | Een visueel element dat de koptekstinhoud van de TreeView controle bevat. |
TreeViewItem Toestanden
De volgende tabel bevat de visuele statussen voor TreeViewItem beheer.
| VisualState-naam | VisualStateGroup-naam | Description |
|---|---|---|
| Normaal | CommonStates | De standaardstatus. |
| Muisover | CommonStates | De muisaanwijzer bevindt zich op de TreeViewItem. |
| Disabled | CommonStates | De TreeViewItem is uitgeschakeld. |
| Focused | FocusStates | Het TreeViewItem heeft de focus. |
| Verstrooid | FocusStates | Het TreeViewItem heeft geen focus. |
| Expanded | ExpansionStates | Het TreeViewItem besturingselement is uitgevouwen. |
| Ingestort | ExpansionStates | Het TreeViewItem besturingselement is samengevouwen. |
| HasItems | HasItemsStates | De TreeViewItem bevat items. |
| Geen items | HasItemsStates | De TreeViewItem heeft geen items. |
| Uitverkoren | SelectionStates | De TreeViewItem optie is geselecteerd. |
| GeselecteerdInactief | SelectionStates | De TreeViewItem optie is geselecteerd, maar niet actief. |
| Niet geselecteerd | SelectionStates | De TreeViewItem optie is niet geselecteerd. |
| Geldig | Validatiestatussen | Het besturingselement maakt gebruik van de Validation klasse en de Validation.HasError gekoppelde eigenschap is false. |
| Ongeldige focus | Validatiestatussen | De Validation.HasError gekoppelde eigenschap heeft true het besturingselement focus. |
| Ongeldige ongeconcentreerdheid | Validatiestatussen | De Validation.HasError gekoppelde eigenschap geldt wanneer true het besturingselement geen focus heeft. |
Gerelateerde Secties
Overzicht van gegevensbindingOverzicht van gegevenssjablonen
.NET Desktop feedback