Использование DragDropTarget с традиционной сеткой - PullRequest
1 голос
/ 02 октября 2010

Silverlight 4 теперь предоставляет элементы управления для обработки действий перетаскивания. Все целевые элементы управления, похоже, наследуются от DragDropTarget. Вот так

public class MyControlDragDropTarget : DragDropTarget<TItemsControlType,TItemsContainerType>

. , .

У ряда элементов управления есть предопределенные DragDropTargets, включая DataGrid, ListBox, Panels

Что все очень хорошо, но я хочу перетащить из сетки , а не сетку данных, и нет предопределенного для нормальной сетки.

Я действительно хочу перетащить заданную строку из сетки, но без Типа контейнера для сетки, я не могу понять, как определить элемент управления DragDropTarget для сетки.

Единственный способ, которым я могу думать, это вместо использования сетки - я использую список (для которого есть DragDropTarget), а затем помещаю StackPanel или Grid в каждую строку (в которой есть одна строка из столбцов 'n')

Кто-нибудь есть идеи

Та заранее

1 Ответ

1 голос
/ 03 октября 2010

«Обычная сетка» - это просто другая форма панели, для Grid нет необходимости в специализированной DragDropTarget, для «нормальной сетки» достаточно существующего PanelDragDropTarget.

Важно понимать, что Grid не поддерживает концепцию «строк, содержащих ячейки, содержащие элементы пользовательского интерфейса».Строки и столбцы таблицы полностью равны и определены исключительно для целей макета.Дочерние элементы UIElement таблицы располагаются совершенно независимо друг от друга, отсутствует концепция набора значений, принадлежащих столбцу или строке, которые можно перемещать или обрабатывать как группу (например, выбрать строку и перетащить ее).).

Похоже, что вы уже получили ответ сами, используйте ListBox.

Кстати, DragDropTarget не предоставляется Silverlight 4, а скорее Silverlight Toolkit.Это важное различие, потому что текущая полоса качества, присвоенная DragDropTarget, является «Экспериментальной».Вам нужно тщательно обдумать это, если вы хотите использовать такой код в своем собственном рабочем выпуске.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...