我有List
的Employee
。我只想執行簡單的拖放操作。即從SourceListBox
中拖出Employee
,並在TargetListBox
中加上Employee Object
。 我有兩個問題。 去除SourceListBox員工給了我一個例外,在TargetListBox顯示的值不是Employee對象,但該字符串Drag_and_Drop.Employee
拖放對象列表框
private List<Employee> emp = new List<Employee>();
emp.Add(new Employee { EmployeeId = 1, Name = "Arslan" });
emp.Add(new Employee { EmployeeId = 2, Name = "Talha" });
SourceListBox.ItemsSource = emp;
SourceListBox.DisplayMemberPath = "Name";
SourceListBox.SelectedValuePath = "EmployeeId";
private void SourceListBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
DragDropEffects dde = DragDrop.DoDragDrop(SourceListBox, SourceListBox.SelectedItem, DragDropEffects.All);
var empi = (Employee) SourceListBox.SelectedItem;
if(dde == DragDropEffects.All)
{
emp.Remove(empi);
SourceListBox.ItemsSource = null;
SourceListBox.ItemsSource = emp;
}
}
private void TargetListBox_DragEnter(object sender, DragEventArgs e)
{
e.Effects = DragDropEffects.All;
TargetListBox.Items.Add(e.Data.GetData(typeof(Employee)));
}
我不知道你的問題的確切答案,但如果你「只是想執行簡單的拖放」,最好使用一些庫,這使得它更容易。實施拖放自己就是一種方式,充滿了痛苦,錯誤和很大的機會,您的解決方案將不具備美觀的界面。例如 - https://github.com/punker76/gong-wpf-dragdrop - 你可以在3行代碼中進行拖放。 –