基础功液样品不掉落

No drop with basic gongsolution sample

我正在尝试在一个简单的 WPF MVVM Light 示例中从 gongsolutions 实现拖放功能,但我无法让它工作。我可以拖动项目(它进入事件)但不能放下他们。我得到了不可用的鼠标图标,而不是能够放下它。

这是xaml:

    xmlns:dd="clr-namespace:GongSolutions.Wpf.DragDrop;assembly=GongSolutions.Wpf.DragDrop" 

        <StackPanel Orientation = "Horizontal" >

        <ListView Width="200" DisplayMemberPath="Name" ItemsSource="{Binding Customers}" 
                  dd:DragDrop.IsDragSource="True" AllowDrop="True" dd:DragDrop.IsDropTarget="True" dd:DragDrop.DropHandler="{Binding}" />

        <ListView Width="200" DisplayMemberPath="EmployeeName" ItemsSource="{Binding Employees}" 
                  dd:DragDrop.IsDragSource="True" AllowDrop="True" dd:DragDrop.IsDropTarget="True" dd:DragDrop.DropHandler="{Binding}"/>

    </StackPanel>

这是我的视图模型:

 public class MainViewModel : ViewModelBase, IDropTarget
{

    private ObservableCollection<Model.Customer> _Customers;
    public ObservableCollection<Model.Customer> Customers
    {
        get
        {
            return _Customers;
        }
        set
        {
            _Customers = value;
            RaisePropertyChanged("Customers");
        }
    }

    private ObservableCollection<Model.Employee> _Employees;
    public ObservableCollection<Model.Employee> Employees
    {
        get
        {
            return _Employees;
        }
        set
        {
            _Employees = value;
            RaisePropertyChanged("Employees");
        }
    }
    public MainViewModel()
    {

        Customers = new ObservableCollection<Customer>();
        Employees = new ObservableCollection<Employee>();

        Customers.Add(new Model.Customer { Name = "Company A" });
        Customers.Add(new Model.Customer { Name = "Company B" });
        Employees.Add(new Model.Employee { EmployeeName = "Tom" });
        Employees.Add(new Model.Employee { EmployeeName = "Jos" });
    }

    ////public override void Cleanup()
    ////{
    ////    // Clean up if needed

    ////    base.Cleanup();
    ////}

    public void DragOver(DropInfo dropInfo)
    {
        System.Diagnostics.Debug.WriteLine(dropInfo.Data.ToString());
    }

    public void Drop(DropInfo dropInfo)
    {

    }
}

示例项目:https://onedrive.live.com/?cid=A8B989CA62E8B39C&id=A8B989CA62E8B39C%21103

您的目标必须在 DragOver 处理程序中设置 DragDropEffect 以允许放置:

public void DragOver(DropInfo dropInfo)
{
    dropInfo.Effects = System.Windows.DragDropEffects.Move;
}