Ich bin ziemlich neu in c #, das erste, was ich versuche zu machen ist ein ListView
mit Datenbindungen, das in Ordnung gekommen ist.
Ich versuche jetzt, Elemente mit einem Twist-Button zu versehen, wenn das zugrundeliegende Modell irgendwelche Kinder hat (wie das TreeView
). Jedes der Kinder wird Spalten haben wie alle Elemente auf der obersten Ebene.
Wie würde ich das machen? Gibt es eine bereits bestehende Kontrolle? Wenn nicht, wäre ich besser dran, ein TreeView
so anzuordnen, dass es wie ein ListView
aussieht, oder ein ListView
so anzuordnen, dass es wie ein TreeView
aussieht?
Ich ging die Straße in diesem Lösung , die ein TreeView
verkleidet, aber das Endergebnis sieht ziemlich schrecklich aus und die Überschrift ist eigentlich nur ein Element, also verlierst du alle netten Spaltengrößen und Spaltenknöpfe, die dich an die Spaltensortierung anschließen können Holen Sie sich in ListView
, so dass die Route tatsächlich scheint, als wäre es mehr Arbeit.
Ich habe bemerkt, dass der neue Task-Manager genau die Kontrolle hat, die ich zu erstellen versuche. Ich weiß nicht, wie das gemacht wurde. wahrscheinlich in C, obwohl.
Microsoft stellt ein Muster zur Verfügung, das anscheinend das ist, wonach Sie suchen. Eine Beschreibung des Beispiels finden Sie hier:
Wenn Sie das Beispiel erstellen und ausführen, erhalten Sie etwas Ähnliches:
In diesem Beispiel wurde eine große Anzahl von Vorlagen erstellt, damit Sie die Dinge so gestalten können, wie Sie es möchten.
Es wäre wahrscheinlich einfacher zu Style
the ListView
, ich hatte ein schnelles Spiel und schaffte es, ein Modell in etwa 10 Minuten zu erstellen.
Offensichtlich werden Sie mehr hinzufügen wollen, aber es scheint ziemlich einfach zu sein, ein TreeView
in der Spalte ListView
zu hosten.
Hier ist der Mock-up-Code, wenn Sie auf bauen möchten.
Xaml:
%Vor%Code: Tut mir leid, dass das Laden der Baumstruktur-Mockup-Daten:)
%Vor%Viel Glück:)
Was Sie beschreiben, klingt ein wenig wie eine TreeListView, und wenn Sie "WPF TreeListView" googlen, werden Sie einige Lösungen sehen, die für Sie gut sind. Ich habe eine von Telerik verwendet, aber je nachdem, wie kompliziert Ihre Anforderungen sind, ist es möglicherweise zu viel.
Wenn Sie nur eine Unterebene wie das angefügte Bild haben möchten, möchten Sie vielleicht Ihre eigenen mit einer ListView mit einem komplexen DataTemplate für die erste Spalte rollen, die eine Expander-Schaltfläche und eine einfache ListBox zeigen würde, die an die untergeordneten Elemente gebunden ist Gegenstände.
Ähnlich wie die Antwort hier , außer dass Ihre Zelle ein Kontrollkästchen hat formatiert, um wie der Pfeil, der Text für das Element und eine untergeordnete ListBox zu aussehen. Dann binden Sie die Sichtbarkeit der untergeordneten ListBox an den Status des Kontrollkästchens.