Drag-und-Drop auf ein TreeView, der Suche nach dem index-wo legen Sie die abgelegten Element

Ich habe eine WPF - TreeView mit einer Ebene der untergeordneten Elemente. Ich bin mit der HierarchicalDataTemplate für die top-level-Elemente, so dass die Kind-Elemente sind an einem Träger Daten-Liste.

Wenn ich dabei bin ziehen und ablegen ich möchte herausfinden, wo in der target-Liste die neuen Gegenstände gehen sollte. Ich habe gebrochen die Szenarien hinunter in den folgenden Fällen:

  1. Bin ich auf auf einen leeren Teil der Ziel - TreeView
  2. Ich bin schweben auf oder in der Nähe einer der top-level - TreeViewItems (dropped item muss gehen auf der Rückseite der Liste)
  3. Ich bin schweben auf einer der Kind-Elemente, in dem Fall die abgelegten Element muss entweder auf der Vorderseite oder der Rückseite des aktuellen Elements, je nachdem ob ich schweben auf der oberen oder unteren Hälfte des Artikels.

Meine Frage ist, wie kann ich wissen, welche TreeViewItem ich bin überfahren? Wie kann ich wissen, ob es ein parent-oder ein child-Typ TreeViewItem? (Sie haben verschiedene DataContext Datentypen) Sollte ich tun, irgendeine Art von hittesting? Wie kann ich wissen, welche top-level-Element besitzt das aktuelle child-Element ich bin überfahren?

InformationsquelleAutor Pieter Breed | 2009-09-15
Schreibe einen Kommentar