基本上在树视图中,我有一个项目列表,如果项目类型为“组”,那么我可以添加/拖放项目。
如何在代码中实现这一目标?我尝试了DragEnter,DragOver事件并将allowdrop属性设置为false,如果目标项不是组对象但无效。有什么建议吗?
干杯
答案 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;
}
}