Domanda

Come si ottiene il livello di un TreeViewItem in WPF C #? In forme finestre c'è un membro .level della classe TreeView, ma non sembra essere uno per WPF C #.

È stato utile?

Soluzione

Costruire un modello di vista.

A View modello gves una maggiore flessibilità con la vista ad albero che si può raggiungere senza di essa. Fatevi un favore, Dont Walk albero visuale, se un nodo padre non è visibile, potrebbe essere virtualizzato via e il vostro livello (o profondità) cifra sarà sbagliato. costruire un modello di vista che avvolge i vostri dati e sa a che livello è a.

Scopri le risposte pubblicati qui.

risposta collegamento uno (che si aggiungerebbe un'altra proprietà al vostro vista del modello - level)

TreeView vista del modello demo

Altri suggerimenti

L'ho fatto con un convertitore perché volevo farlo con <style>

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

E il convertitore

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

Questo è particolarmente utile per lo styling multilivello nella vista ad albero

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top