Pregunta

¿Cómo se obtiene el nivel de un TreeViewItem en WPF C #? En formas de las ventanas hay un miembro de la clase .level vista de árbol, pero no parece ser uno de WPF C #.

¿Fue útil?

Solución

Construir un modelo de vista.

A View modelo que gves una mayor flexibilidad con la vista de árbol que se puede lograr sin ella. Hágase un favor, no se echan el árbol visual, Si un nodo padre no es visible, podría ser virtualizado de distancia y su nivel (o profundidad) cifra será incorrecto. construir un modelo de vista que envuelve sus datos y sabe en qué nivel se encuentra en.

Vea las respuestas publicadas aquí.

respuesta del enlace Una (se añadiría otra propiedad a su vista de modelo - nivel)

vista de árbol vista del modelo de demostración

Otros consejos

Lo hice con un convertidor porque quería hacerlo con <style>

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

Y el convertidor

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;
    }

Esto es particularmente útil para el peinado multinivel en la vista de árbol

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top