Отключение удаления некоторых элементов в TreeViewDragDropTarget из набора инструментов Silverlight - PullRequest
1 голос
/ 03 ноября 2010

В основном в древовидной структуре у меня есть список элементов, если элемент имеет тип «Группа», то я могу добавить / перетащить в него элементы перетаскивания.

Как мне добиться этого в коде? Я пробовал события DragEnter, DragOver и устанавливал для свойства allowdrop значение false, если целевой элемент не является групповым объектом, но безрезультатно. Любой совет, пожалуйста?

Приветствия

1 Ответ

2 голосов
/ 07 ноября 2010

Возможно, вы захотите установить для эффектов значение «Нет» (или более конкретно отключить функцию «Копировать / связать / переместить»).

Хороший пример того, как это сделать программно, находится внутри самого 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;
            }
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...