MultiSelectTreeView-Steuerelement

Ein WPF-TreeView-Steuerelement, das mehrfache Auswahl unterstützt.

MultiSelectTreeView ist ein .NET/WPF-Steuerelement, das einen hierarchischen Baum von Elementen anzeigt, die durchblättert, ausgewählt, eingeklappt und bearbeitet werden können wie in einem normalen Tree-Control. Dieses Steuerelement beseitigt ein paar der Einschränkungen, die das in WPF enthaltene TreeView-Steuerelement hat. Am bedeutendsten ist seine Unterstützung für mehrfache Auswahl und die einfachere Anpassbarkeit des Styles in verschiedenen Aspekten. Es stellt das Windows-7-Aero-Design sehr genau dar und passt sich an andere Windows-Designs (Luna, Royale, klassisch, Aero2) an. Die Steuerung per Maus und Tastatur ist am Windows Explorer angelehnt.

Kompatibilität: .NET Ab Version 4.0

Bilder

Die Demo-Anwendung in der Projektmappe zeigt die meisten Funktionen des Steuerelements.

Image
Windows-7-Aero-Design
Image
Windows XP klassisch
Image
Windows-XP-Luna-Design
Image
Rechteckauswahl
Image
Bearbeiten eines Elements

Download

master.zipAktuelle Version direkt von GitHub

Du kannst dir auch frühere Versionen bei GitHub herunterladen oder in die Aufgabenliste schauen:

MultiSelectTreeView-Repository bei GitHub

Dieses Paket ist auch über NuGet verfügbar. Auf diesem Weg kann es besonders schnell in ein Visual-Studio-Projekt eingebunden und später aktualisiert werden.

MultiSelectTreeView-Paket bei NuGet

Geschichte

Im Web lassen sich einige Versuche finden, dem TreeView-Steuerelement in Windows Forms und WPF die mehrfache Auswahl beizubringen. Es muss also einen gewissen Bedarf dafür geben. Für ein Kundenprojekt habe ich schließlich selbst nach einer guten Lösung gesucht. Es gibt also Hacks, die das Standard-WPF-TreeView verwenden und nur die Auswahllogik oder gar nur die Bildschirmdarstellung der Auswahl ersetzen, und es gibt ListView-Ableitungen, die virtuelle Unterelemente einfügen und wieder entfernen, wenn der Benutzer einen Teilbaum auf- oder zuklappt. Die meisten von ihnen hatten ein paar wesentliche Probleme mit der Datenverwaltung oder der Tastatursteuerung.

Dann fand ich das TreeViewEx-Projekt von Goroll, das einen guten Eindruck erweckte und eine solide Architektur hatte. Es ist im Grunde komplett neu geschrieben und verwendet die Basis-Controls, die WPF für diesen Zweck anbietet. Es verwendet tatsächlich die gleichen Basisklassen wie das WPF-TreeView. Während ich Fortschritte machte, manche der Fehler zu beseitigen und die Interna zu verstehen (und WPF allgemein besser kennen zu lernen), erkannte ich, dass dieses Control meine Anforderungen erfüllen würde. Im netten Kontakt mit dem ursprünglichen Autor merkte ich aber schließlich auch, dass wir uns nicht auf eine gemeinsame Version einigen können. Da ich meine Erweiterungen nicht aufgeben wollte, habe ich mich dazu entschlossen, das Projekt öffentlich zu „forken“ (abzuspalten). Unter einem neuen Namen, um Verwirrung zu vermeiden. Später habe ich ein paar weitere Korrekturen aus dem Originalcode übernommen und ich werde das Projekt auch weiterhin gelegentlich mitverfolgen.

Lizenz und Nutzungsbedingungen

Diese Software wird unter den Bedingungen der MIT-Lizenz veröffentlicht. Die genauen Lizenzbedingungen befinden sich im Download.

Statistische Daten

  • Erstellt am 2012-07-31, aktualisiert am 2015-02-23.
  • Ca. 3 400 Codezeilen, geschätzte Ent­wick­lungs­kos­ten: 3 400 - 14 000 €