hi.
im trying to Create drag and drop between two Listboxes.
i Add values Into listbox1 And when i want to Drag it into Listbox2 it fails.
i have to mention that There is no database or item binding.
i created text box and i add item from there
Here is my code:
private void Listbox1_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
listbox1startsmousepose=e.GetPosition(null);
}
private void Listbox2_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
listbox2startsmousepose=e.GetPosition (null);
}
private void Listbox1_MouseMove(object sender, MouseEventArgs e)
{
Point mPos = e.GetPosition(null);
if (e.LeftButton == MouseButtonState.Pressed &&
Math.Abs(mPos.X) > SystemParameters.MinimumHorizontalDragDistance &&
Math.Abs(mPos.Y) > SystemParameters.MinimumVerticalDragDistance)
{
try
{
ListBoxItem selectedItem = (ListBoxItem)Listbox1.SelectedItem;
Listbox1.Items.Remove(selectedItem);
DragDrop.DoDragDrop(this, new DataObject(DataFormats.FileDrop, selectedItem), DragDropEffects.Copy);
if (selectedItem.Parent == null)
{
Listbox1.Items.Add(selectedItem);
}
}
catch { }
}
}
private void Listbox2_MouseMove(object sender, MouseEventArgs e)
{
Point mPos = e.GetPosition(null);
if (e.LeftButton == MouseButtonState.Pressed &&
Math.Abs(mPos.X) > SystemParameters.MinimumHorizontalDragDistance &&
Math.Abs(mPos.Y) > SystemParameters.MinimumVerticalDragDistance)
{
try
{
ListBoxItem selectedItem = (ListBoxItem)Listbox2.SelectedItem;
Listbox2.Items.Remove(selectedItem);
DragDrop.DoDragDrop(this, new DataObject(DataFormats.FileDrop, selectedItem), DragDropEffects.Copy);
if (selectedItem.Parent == null)
{
Listbox2.Items.Add(selectedItem);
}
}
catch { }
}
}
private void Listbox2_Drop(object sender, DragEventArgs e)
{
if (e.Data.GetData(DataFormats.FileDrop) is ListBoxItem listItem)
{
Listbox2.Items.Add(listItem);
}
}
private void Listbox1_Drop(object sender, DragEventArgs e)
{
if (e.Data.GetData(DataFormats.FileDrop) is ListBoxItem listItem)
{
Listbox1.Items.Add(listItem);
}
}