禁用Silverlight Toolkit的TreeViewDragDropTarget中的某些项目

时间:2010-11-03 12:27:35

标签: silverlight treeview

基本上在树视图中,我有一个项目列表,如果项目类型为“组”,那么我可以添加/拖放项目。

如何在代码中实现这一目标?我尝试了DragEnter,DragOver事件并将allowdrop属性设置为false,如果目标项不是组对象但无效。有什么建议吗?

干杯

1 个答案:

答案 0 :(得分:2)

您需要将效果设置为无(或更具体地关闭复制/链接/移动)。

以编程方式执行此操作的一个很好的示例是在TreeViewDragDropTarget本身内部,因为如果您尝试拖动项目本身,它包含类似禁用的逻辑。

http://silverlight.codeplex.com/SourceControl/changeset/view/56962#779753

相关摘录:

        if (itemsControl == null || IsTreeViewItemDraggedInDescendent(args) || IsTreeViewItemDraggedDirectlyAboveOrBelowSelf(args))
        {
            SW.DragDropEffects effects = args.AllowedEffects & (~(SW.DragDropEffects.Copy | SW.DragDropEffects.Link | SW.DragDropEffects.Move));
            args.Effects = effects;
            if (args.Effects != args.AllowedEffects)
            {
                args.Handled = true;
            }
        }