Silverlight Drag And Drop. У Сильверлайта появился свой нормальный драг дроп с выходом Toolkit от октября 2009 года.
Очень хорошо!
Но оказалось, что это заметно тормозит при количестве элементов в списке от 500. Например, если в ListBox 3 000 элементов, то какая-либо реакция проявляется только через 5 секунд.
Пока проджекта не уговорю сделать пейджинг и фильтрацию, придется, для некоторых задач, продолжить пользоваться своим аналогичным фреймворком, который работает ваабще без задержек.
Но все равно стоит использовать решение из Toolkit, т.к., например, мое решение не умеет разворачивать ноды в TreeView. Недолго сделать, но прикручивать все такие мелочи – жизни не хватит :) .
Ниже источники и описание.
Блог Tim Heuer "Silverlight Toolkit adds DragDrop" EN – здесь ознакомительное описание, позволяющее начать работать с примером.
Silverlight Toolkit EN – а здесь исходник с примером.
Если вы хотите глубоко кастомизировать ваши решения, то нужно смотреть
New with the Silverlight Toolkit: Drag and Drop Support for all your Favorite Controls! (Part 1) и
Silverlight Toolkit Drag Drop (Part 2): Customizing Drag and Drop Behavior
Пример можно посмотреть в ToolKit (выберите в меню слева внизу) и у Tim Heuer.
Этот DragDrop строится на подходе WPF (слава богу) с такими же событиями. Даже можно писать переносимый код, соблюдая некоторые условия.
Идея этого Drag Drop в следуюещем, теперь можно для ListBox, TreeView, DataGrid и графиков (Charts) исполльзовать Драгэнддроп, если вложить их в соответствующий элемент:
Важно, что решение можно глубоко кастомизировать и настраивать.
Заявляется, что можно делать Drag Drop внутри одного контрола, но только в случае ListBox для этого нужно отключать виртуализационную панель. В приведенных выше ссылках об этом рассказано подробно.
Также доступно перемещение за раз нескольких элементов при множественном выделении айтемов.
Я за унификацию, поэтому буду переходить на новый Drag Drop, хотя уже привык к некоторым своим фичам, способам визуализации и регистрации источников и приемников Drag Drop.
Комментарии
Отправить комментарий