Silverlight 5 Treeview拖放

时间:2012-04-18 19:12:36

标签: c# silverlight entity-framework

我在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还提供了阻力发生的视觉反馈。

我想知道的一件事是绑定到TreeView的Collection不是ObservableCollection。实体的Children属性是EntityCollection。我不确定我在EntityObject中可以搞得什么。

任何人有任何想法吗?

更新:如果我将子节点拖到其上层或下层树中的任何节点,则没有任何反应。如果我将子项拖到根节点上方或下方,则树视图中会出现一条线。如果我把它放在那里,我得到一个空引用异常。我无法把它钉死。我知道这个问题有很多,但我认为我们已经接近了。任何帮助或见解表示赞赏。

更新2:我将添加一些屏幕截图来显示正在发生的事情。

This is a sample treeview. 示例树视图

TreeViewItem Drag 这是我拖动项目时的样子。我试图将银河系拖为没有父母的根节点。注意顶部的线。我认为这是下降位置。如果我放弃它,我得到例外。假设我将太阳系拖成宇宙的直接孩子。什么都没发生。也没有出现任何行。

0 个答案:

没有答案