2

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: 何が起こっているかを示すスクリーン ショットをいくつか追加します。

これはサンプルのツリービューです。 サンプル ツリービュー

TreeViewItem ドラッグ アイテムをドラッグすると、このように表示されます。天の川を親のないルート ノードにドラッグしようとしています。上部の線に注目してください。ここがドロップ位置だと思います。そこにドロップすると、例外が発生します。Solar System を Universe の直接の子にドラッグするとします。何も起こりません。ラインも出ません。

4

0 に答える 0