Question

Comment obtenez-vous le niveau d'un TreeViewItem dans WPF C #? Dans les formes de fenêtres, il est membre .Level de la classe, mais il ne TreeView semble pas être un pour WPF C #.

Était-ce utile?

La solution

Construire un modèle de vue.

Voir le modèle que vous gves une plus grande flexibilité que vous treeview pouvez obtenir sans elle. Faites-vous une faveur, l'arbre Ne pas marcher visuel, Si un nœud parent est pas visible, il pourrait être virtualisé loin et votre niveau (ou profondeur) chiffre erroné. construire un modèle de vue qui enveloppe vos données et sait à quel niveau il est à.

Découvrez les réponses affichées ici.

lien réponse un (vous ajouterez une autre propriété à votre modèle de vue - niveau)

TreeView modèle de démonstration vue

Autres conseils

Je l'ai fait avec un convertisseur parce que je voulais le faire avec <style>

<DataTrigger Binding="{Binding Parent, RelativeSource={RelativeSource Self}, Converter={StaticResource TreeViewItemConverter}}" Value="1">
         <Setter TargetName="Bd" Property="Background"  Value="Yellow"/>
</DataTrigger>

Et le convertisseur

public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        if ((value as TreeView) != null)//level 1
            return 0;

        var item = (value as TreeViewItem);
        if (item != null) // level 2 and 3
            return (item.Parent as TreeViewItem)!=null ? 2 : 1;
        return 0;
    }

Ceci est particulièrement utile pour le style à plusieurs niveaux dans l'arborescence

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top