Treeview als "System.IO" anwenden

  • C#

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von Krschy.

    Treeview als "System.IO" anwenden

    Ich möchte ein Treeview erstellen.
    Und dieses Treeview soll im Prinzip alle Dateien und Ordner enthalten.
    Aber!!: Ich will es nicht auslesen, sondern selbst darüber steuern.
    Konkret-> Ich habe ein ContextMenü das folgendes enthält:
    • Neue Datei hinzufügen
    • Neuen Ordner hinzufügen
    • Neuen Unterordner hinzufügen

    Und mein "Root"-Knoten, so nenne ich das mal vorübergehend, hat anfangs folgende Konten enthalten:
    • Aktuell existierende Ornder
    • Aktuell existierende Dateien

    Wichtig ist, das ich nur in einem bestimmten Ordner arbeite, beispielsweise "C:\Test".
    Und jetzt möchte ich mit Rechtsklick das Menü aufrufen und richtig handeln.

    Beispielsituation:
    • C:\Test (Root)
      • FolderA
        • FolderA1
        • FileA1
        • FileA2

      • FolderB
      • FileA



    Und jetzt klicke ich (Rechtsklick, Menü öffnen) dieses Item an:
    • C:\Test (Root)
      • FolderA
        • FolderA1 <- Dieses Item
        • FileA1
        • FileA2

      • FolderB
      • FileA



    Und wähle aus der Liste, neuen Unterordner erstellen.
    Dann gebe ich einen Namen ein und der Ordner wird erstellt.
    Der Ordner sowie der Unterknoten.

    Ich hoffe ihr versteht mein aktuelles Anliegen und könnt mir weiterhelfen. Das wäre sehr nett :)
    Doch da haste alles was du wissen musst.
    Du hast ein Event wenn das Teil aufgeht. Und wenn es aufgeht musst du halt schauen auf was geclickt wurde bzw. für was das menü aufgeht und das contextmenü entsprechend befüllen.
    Nebenbei: In WPF wäre das traumhaft einfach. Dort kannst du solche Sachen via XAML im Style oder Template regeln. Aber du wirst wohl eher der WinForm Typ sein der sich gerne abquält :(


    Opensource Audio-Bibliothek auf github: KLICK, im Showroom oder auf NuGet.
    Du willst mir jetzt aber nicht sagen, dass du alles am Anfang lädst?
    Außerdem was hat Rekursion mit deinem Kontextmenü zu tun? Du gehst Rekursiv das Dateisystem durch ok.
    Optimaler wäre jedoch immer erst dann zu laden wenn du etwas brauchst. Sprich wenn ein Knoten aufgemacht usw.


    Opensource Audio-Bibliothek auf github: KLICK, im Showroom oder auf NuGet.
    Nunja, die angelegten Items, die ich REINZUFÜLLIG zurückgekommen, kann ich mit einem ContextMenu versehen.
    Der ganze Rest erledigt sich dann von selbst.
    Klar, es ist Leistungslastig, aber ich will ja nicht die komplette C-Partition. Ich habe lediglich 10 - 50 Dateien. Und bei sehr großen Projekten 200.. d.h. kann man das rekursiv lösen.
    Ich sehe da kein Problem und es funktioniert einwandfrei.
    Man muss nur wissen, wie weit diese Methode aufgerufen wird.. man kann das auch falsch machen :)

    P.S. In dieser Rekursion werden die Knoten angelegt.