Silverlight DataGridDragDropTarget. Как перетащить элемент сетки данных в панель стека / пользовательский элемент управления? - PullRequest
1 голос
/ 10 марта 2010

У меня есть DataGrid. У меня DataGridDragDropTarget из ноябрьского инструментария.

Теперь я могу перетаскивать элемент сетки данных в окно списка или в виде дерева.

Однако мне нужно поместить элемент на свой пользовательский элемент управления (и добавить его на панель стека плоскостей).

Есть статья от парня, который написал все эти расширения: http://themechanicalbride.blogspot.com/2009/10/silverlight-drag-drop-support-part-2.html

Но он непостижим. Кто-нибудь пытался сделать подобное мне нужно?

Я хотел бы использовать поведение (пользовательское поведение в порядке - я делал это раньше) или инструментарий DragDropTarget solution.

Я просто не знаю, как прикрепить к отдельному элементу сетки данных ...

1 Ответ

3 голосов
/ 11 марта 2010

Что я сделал:

а. сетка завернута в:

            <dtool:DataGridDragDropTarget msw:DragDrop.AllowDrop="False" ItemDragCompleted="ItemDragCompleted_Handler"
                                          HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch">

б. Дочерний пользовательский элемент управления, который должен получить отбрасывание, имеет подключенные события MouseEnter / MouseLeave и открытое публичное свойство IsMouseInside.

с. Обработчик события выглядит следующим образом:

void ItemDragCompleted_Handler(object sender, ItemDragEventArgs e)
{
    if (ChildControl.IsMouseInside)
    {
        SelectionCollection sel = (e.Data as SelectionCollection);
        ChildControl.AddItem(sel[0].Item as MyData);
...
...