首页 > 解决方案 > 为什么拖放功能不拖动而是复制对象到目标项控件

问题描述

我想在我的应用程序中使用拖放功能,我需要将项目从一个列表框拖到另一个列表框。

我正在使用 GongSolution.WPF.DragDrop.dll;汇编版本 2.1.0

来自 [在此处输入链接描述][1] 。

为了检查是否使用该库,我添加了两个带有 LT1、LT2 的列表框。

<ListBox Name="LT1"
                ItemTemplate="{StaticResource itemlisttemplate}"
                 Grid.Column="0"
                 dd:DragDrop.IsDragSource="True"
                 dd:DragDrop.IsDropTarget="True"
                 SelectionMode="Single" 
                 ScrollViewer.HorizontalScrollBarVisibility="Auto">
<ListBox Name="LT2"
                ItemTemplate="{StaticResource itemlisttemplate}"
                 Grid.Column="1"
                 dd:DragDrop.IsDragSource="True"
                 dd:DragDrop.IsDropTarget="True"
                 SelectionMode="Single" 
                 ScrollViewer.HorizontalScrollBarVisibility="Auto">

还有一个示例代码将一些项目添加到 Listbox1 (LT1) 中,因此我可以尝试将其拖放到 Listbox2 (LT2)

System.Object[] ItemObject = new System.Object[10];  
for (int i = 0; i <= 3; i++)  
{  
   ItemObject[i] = "Item" + i;  
}  
LT1.Items.AddRange(ItemObject);

在应用程序启动时,我可以看到两个项目被添加到 listbox1 中。但是当我试图将项目从 listbox1 复制到 listbox2 时,而不是拖动,它被复制并移动到 listbox2。

请求某人指导/建议这里可能出现的问题。

或者建议我在任何库中使用拖放功能。

非常感谢。

标签: wpflistboxdrag

解决方案


  //when you try to drag the element make sure,

       void .....DragEvent1(......)
       {
        if (listBox1.SelectedItems.Count > 0)
        {
            //in case unknown error
            try
            {

            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
      }

推荐阅读