Comment obtenez-vous le niveau d'un TreeViewItem dans WPF C #?
-
02-10-2019 - |
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 #.
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)
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