Wie beurteilen Sie das Niveau eines TreeViewItem in WPF C # bekommen?
-
02-10-2019 - |
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.
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)
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