【发布时间】:2010-11-03 12:27:34
【问题描述】:
基本上在树形视图中,我有一个项目列表,如果项目是“组”类型,那么我可以添加/拖放项目到其中。
如何在代码中实现这一点?如果目标项不是组对象但无济于事,我尝试了 DragEnter、DragOver 事件并将 allowdrop 属性设置为 false。请问有什么建议吗?
干杯
【问题讨论】:
标签: silverlight treeview
基本上在树形视图中,我有一个项目列表,如果项目是“组”类型,那么我可以添加/拖放项目到其中。
如何在代码中实现这一点?如果目标项不是组对象但无济于事,我尝试了 DragEnter、DragOver 事件并将 allowdrop 属性设置为 false。请问有什么建议吗?
干杯
【问题讨论】:
标签: silverlight treeview
您需要将效果设置为无(或者更具体地关闭复制/链接/移动)。
以编程方式执行此操作的一个很好的例子是 TreeViewDragDropTarget 本身,因为它包含在您尝试将项目拖到其自身下方时类似禁用的逻辑。
http://silverlight.codeplex.com/SourceControl/changeset/view/56962#779753
相关的sn-p:
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;
}
}
【讨论】: