Announcement

Collapse
No announcement yet.

Treeview-Knoten deaktivieren

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Treeview-Knoten deaktivieren

    Hi,

    In einer Anwendung habe ich eine TreeView mit Checkboxen, die eine Struktur darstellen soll, die aber nur für die angehakten weiter aufgelöst werden soll. Strukturknoten, bei denen die Auflösung nicht verändert werden darf (weil z.B. ein Datenbankeintrag die Auflösung explizit verhindert, oder sie sowieso schon aufgelöst sind) habe ich der Übersichtlichkeit des Baumes zuliebe gar nicht angezeigt. Testanwender meinten nun, dies sei irritierender als auch die unnötigen Knoten anzuzeigen, und ich solle die Knoten trotzdem darstellen, aber die Bearbeitung dieser Knoten (d.h. expandieren und anhaken/Markierung entfernen) unterbinden.

    Das Expandieren verhindern geht ja einfach, in dem ich den entsprechenden Unterbaum gar nicht erst einlade, da die TreeNodes aber kein ReadOnly oder Enabled haben, fällt mir in dem Zusammenhang nur ein, im BeforeCheck-Event wieder in der Datenbank nachzufragen, ob der Knoten bearbeitbar ist, und dann notfalls die Änderung zurücknehmen (die Information im Tag zu speichern, wird etwas aufwendiger, weil der Tag schon für andere Informationen herhalten muss). Gibt es da eine Eigenschaft, die ich nur nicht gefunden habe, die die Bearbeitung der Checkbox von vorneherein verhindert, oder die ich dafür missbrauchen kann? Oder muss ich die Info doch in den Tag mit einpflegen, d.h. dann ich habe doch keinen einfachen String mehr im Tag sondern ein etwas komplexeres Konstrukt?

    Gruß
    Martin

  • #2
    Tag ist vom Typ Object da kann man natürlich auch komplexere Klassen speichern und nicht nur Basisdatentypen.

    Nicht nichtsdestotrotz ist das verwenden von Tag ein Hack. Wenn du eh direkt an den Nodes arbeitest wieso leitest du nicht deinen eigenen TreeView/TreeNode Typen ab und gibst den Klassen einfach die nötige Funktionalität?

    Nur mal spekulativ gedacht stell ich mir vor das du einen eigenen TreeNode ableitest mit deinen eigenen zusätzlichen Daten. Und dazu einen TreeView ableitest in dem du OnBeforeExpand überschreibst und prüfst ob überhaupt expandet werden darf.

    Comment

    Working...
    X