Flex DataGrid / перетаскивание списка - Как избежать копирования - PullRequest
2 голосов
/ 21 июля 2011

Я использую перетаскивание в DataGrid для изменения порядка элементов. Однако, когда пользователь удерживает нажатой клавишу Ctrl, он может инициировать операцию копирования с помощью перетаскивания. Как вообще отключить копирование? (не только отменить удаление, но и предотвратить перетаскивание Ctrl + значок (+))

Ответы [ 3 ]

6 голосов
/ 17 августа 2011

Это сработало для меня (для списка искр):

<s:List dragEnabled="true" dropEnabled="true" dragMoveEnabled="true"
dragEnter="{event.ctrlKey = false}" dragOver="{event.ctrlKey = false}">
...
</s:List>
1 голос
/ 21 июля 2011

Один подход будет следующим:

  1. Прослушивать события нажатия клавиш на сетке данных. Если пользователь удерживает нажатой клавишу CTRL, установите грязный флаг
  2. Прослушивание события dragStart в сетке данных. Проверьте, установлен ли флаг «грязный» в true, если это так, то event.preventDefault () должен прекратить любое перетаскивание.

Не забудьте сбросить грязный флаг, как требуется.

0 голосов
/ 17 октября 2014
To avoid the copying use dragDropHandler() in which you can check weather the cntrl key is pressed while dragging, if yes you can restrict the dragdrop.  

protected function myTree_dragDropHandler(event:DragEvent):void { 
           if(event.ctrlKey== true) {
                 event.preventDefault();
                 cvTree.hideDropFeedback(event);
                 return;
           }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...