SilverLight で TreeView をドラッグ アンド ドロップすると問題が発生します。TreeView で項目を並べ替えられるようにしたいと考えています。たとえば、アイテムの親を変更します。EntityFramework を階層関係 (ID、ParentID) で使用しています。これが私のxamlです。
<toolkit:TreeViewDragDropTarget AllowDrop="True" HorizontalAlignment="Left">
<sdk:TreeView Name="treeView1" Height="176"
HorizontalAlignment="Left" Width="Auto">
<sdk:TreeView.ItemTemplate>
<sdk:HierarchicalDataTemplate
ItemsSource="{Binding Path=Children}">
<TextBlock Text="{Binding Path=LocationName}"/>
</sdk:HierarchicalDataTemplate>
</sdk:TreeView.ItemTemplate>
</sdk:TreeView>
</toolkit:TreeViewDragDropTarget>
ドラッグ アンド ドロップ イベントが機能しているかどうかを確認するために、いくつかのイベント ハンドラーを作成しました。Silverlight は、ドラッグが発生しているという視覚的なフィードバックも提供します。
私が疑問に思っていることの 1 つは、TreeView にバインドされているコレクションが ObservableCollection ではないということです。Entity の Children プロパティは EntityCollection です。EntityObject で何をいじることができるかわかりません。
誰にもアイデアはありますか??
更新: 子ノードを上位ツリーまたは下位ツリーの任意のノードにドラッグしても、何も起こりません。ルート ノードの上または下に子をドラッグすると、ツリー ビューに線が表示されます。そこにドロップすると、null 参照例外が発生します。私はそれを突き止めることはできません。この質問には多くのことが起こっていることは知っていますが、私たちは近づいていると思います. どんな助けや洞察も大歓迎です。
更新 2: 何が起こっているかを示すスクリーン ショットをいくつか追加します。
サンプル ツリービュー
アイテムをドラッグすると、このように表示されます。天の川を親のないルート ノードにドラッグしようとしています。上部の線に注目してください。ここがドロップ位置だと思います。そこにドロップすると、例外が発生します。Solar System を Universe の直接の子にドラッグするとします。何も起こりません。ラインも出ません。