Frage

Wie beurteilen Sie die Ebene eines TreeViewItem in WPF C # bekommen? In Windows Forms gibt es ein .level Mitglied der Strukturansichtsklasse, aber es scheint nicht zu einem für WPF C # zu sein.

War es hilfreich?

Lösung

Erstellen Sie ein View-Modell.

A View Modell gves Sie größere Flexibilität bei der Strukturansichts als Sie, ohne es zu erreichen. Tun Sie sich selbst einen Gefallen, nicht die visuelle Struktur zu gehen, wenn ein Elternknoten nicht sichtbar ist, es könnte virtualisiert entfernt und Ihr Niveau (oder Tiefe) Figur falsch. baut ein Ansichtsmodell, das Ihre Daten wickelt und weiß, was es eben ist an.

Schauen Sie sich die Antworten gepostet hier.

Antwort Link ein (Sie würden eine andere Eigenschaft hinzufügen Ihren Ansicht Modell - Ebene)

treeview Ansicht Modell Demo

Andere Tipps

Ich habe es mit einem Konverter, weil ich es mit <style> tun wollte

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

Und der Konverter

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

Dies ist besonders nützlich für Multi-Level-Styling in der Baumansicht

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top