我有DataGrid
。我有来自November Toolkit的DataGridDragDropTarget
。
我现在可以将数据网格项拖放到列表框或树视图中。
但是我需要将项目放到我的用户控件上(并将其添加到平面堆栈面板)。
撰写所有这些扩展名的人写了一篇文章:http://themechanicalbride.blogspot.com/2009/10/silverlight-drag-drop-support-part-2.html
但是他很不专心。有人试图做我需要的类似吗?我想使用行为(自定义行为很好 - 我以前做过)或工具包DragDropTarget解决方案。
我只是不知道如何附加到单个数据网格项...
答案 0 :(得分:3)
我做了什么:
一个。网格包裹在:
<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);
...