基础功液样品不掉落
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;
}
我正在尝试在一个简单的 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;
}