TOC

This article is currently in the process of being translated into Italian (~98% done).

Il controllo TreeView:

Introduzione al TreeView

Il controllo TreeView permette di visualizzare dati gerarchici, dove ogni dato è rappresentato da un nodo nella struttura. Ogni nodo può quindi avere nodi figlio e i nodi figlio possono avere nodi figlio e così via. Se hai mai usato Windows Explorer, sai come appare TreeView: è il controllo che mostra la struttura delle cartelle corrente sul tuo computer, nella parte sinistra della finestra di Windows Explorer.

TreeView in WPF vs. WinForms

Se in precedenza hai lavorato con il controllo TreeView in WinForms, potresti pensare al controllo TreeView come facile da usare ma difficile da personalizzare. In WPF è un po' il contrario, almeno per i neofiti: è un po' complicato iniziare, ma è facile da personalizzare. Proprio come la maggior parte degli altri controlli WPF, TreeView è quasi senza aspetto, ma può essere personalizzato senza troppi sforzi.

Proprio come con il controllo ListView, il controllo TreeView ha il proprio tipo di elemento, TreeViewItem, che è possibile utilizzare per popolare TreeView. Se vieni dal mondo WinForms, probabilmente inizierai generando TreeViewItem e aggiungendoli alla proprietà Items, e questo è davvero possibile. Ma poiché si tratta di WPF, il modo preferito è associare TreeView a una struttura di dati gerarchica e quindi utilizzare un modello appropriato per eseguire il rendering del contenuto.

Ti mostreremo come farlo in entrambi i modi, e mentre il buon vecchio modo ispirato a WinForms potrebbe sembrare la scelta facile all'inizio, dovresti assolutamente provare WPF: a lungo termine, offre più flessibilità e si adatterà meglio al resto del codice WPF che scrivi.

Summary

WPF TreeView è davvero un controllo complesso. Nel primo esempio, che vedremo già nel prossimo capitolo, potrebbe sembrare semplice, ma una volta che scavi più a fondo, vedrai la complessità. Fortunatamente, il controllo TreeView di WPF ti premia con grande usabilità e flessibilità.

This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!