none
Drag'n'Drop mit Datengebundener TreeView RRS feed

  • Frage

  • Hi, ich möchte eine Drag'n'Drop Funktion in mein Programm implementieren. Speziell in einer TreeView möchte ich die Kinder usw. in z.B. andere Elternknoten verschieben können. All diese Items sind Instanzen meiner Eigenen Klasse. Die TreeView selber ist an einer ObservableColection gebunden. Nun möchte ich auch noch die Reiehnfolge der Items verändern können also so hier:

    Item1
       Item1-1
       Item1-2
       Item1-3
       Item1-4

    wid zu

    Item1
       Item1-1
       Item1-4
       Item1-2
       Item1-3

    Außerdem brauche ich die möglichkeit, ein Item in die Oberste Ebene zu verschieben. Geht so etwas?

    Ich habe schon danach im Internet gesucht, aber irgendwie die ganzen Beispielcodes nicht so recht verstanden (Meine Englischkenntnisse sind nicht so gut). Ich habe schon AllowDrop=True gesetzt, aber das nützt mir ja auch nichts.

    Kann mir vielleicht jemand einen kleinen Beispielcode mit Erklärung geben, damit ich es verstehe.

    Dienstag, 9. Oktober 2012 16:45

Antworten

  • Hallo,

    auch wenn deine Frage nun schon einen Monat zurück liegt, vielleicht kannst du ja immernoch Hilfe gebrauchen. In folgendem link wird das Problem Drag'n'Drop in einer Datengebundenen TreeView nochmal etwas ausführlicher Behandelt:
    http://social.msdn.microsoft.com/Forums/de-DE/wpfde/thread/31d7bb1b-a6aa-4e49-ba8f-fa9d3910c4e0/

    Um ein Item hoch und runter zu verschieben, reicht es aus, wenn du das zu verschiebende mit dem darüber oder darunter liegendem Element vertauschst, frei nach diesem Code:

    int x_pos = 0;
    int y_pos = 1;
    
    int tmp = x_pos;
    x_pos = y_pos;
    y_pos = tmp;
    Um ein Element in die oberste Ebene zu verschieben, kannst du einfach das Item in deine zu Grunde liegende OC kopieren und dann deine Ursprüngliche Instanz löschen.


    Koopakiller [kuːpakɪllɐ] http://koopakiller.ko.ohost.de/

    • Als Antwort markiert xD3000 Dienstag, 1. Januar 2013 23:09
    Dienstag, 18. Dezember 2012 20:45
    Moderator

Alle Antworten

  • Hallo,

    auch wenn deine Frage nun schon einen Monat zurück liegt, vielleicht kannst du ja immernoch Hilfe gebrauchen. In folgendem link wird das Problem Drag'n'Drop in einer Datengebundenen TreeView nochmal etwas ausführlicher Behandelt:
    http://social.msdn.microsoft.com/Forums/de-DE/wpfde/thread/31d7bb1b-a6aa-4e49-ba8f-fa9d3910c4e0/

    Um ein Item hoch und runter zu verschieben, reicht es aus, wenn du das zu verschiebende mit dem darüber oder darunter liegendem Element vertauschst, frei nach diesem Code:

    int x_pos = 0;
    int y_pos = 1;
    
    int tmp = x_pos;
    x_pos = y_pos;
    y_pos = tmp;
    Um ein Element in die oberste Ebene zu verschieben, kannst du einfach das Item in deine zu Grunde liegende OC kopieren und dann deine Ursprüngliche Instanz löschen.


    Koopakiller [kuːpakɪllɐ] http://koopakiller.ko.ohost.de/

    • Als Antwort markiert xD3000 Dienstag, 1. Januar 2013 23:09
    Dienstag, 18. Dezember 2012 20:45
    Moderator
  • Danke, so hats funktioniert.
    Dienstag, 1. Januar 2013 23:10