私はこれを今すぐテストする時間がありませんが、Jobyのリンクからダイナミックに作成されたリストボックスにイベントを添付してみることができますか?それは次のようになります:ソースリンクが消えた場合には、ここで、完全を期すため
// Create an instance of the control
var control = Activator.CreateInstance(ListBox);
control.PreviewMouseLeftButtonDown += ListBox_PreviewMouseLeftButtonDown;
control.Drop += ListBox_Drop;
をイベントハンドラは、ここでhttp://www.c-sharpcorner.com/uploadfile/dpatra/drag-and-drop-item-in-listbox-in-wpf/
ListBox dragSource = null;
private void ListBox_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
ListBox parent = (ListBox)sender;
dragSource = parent;
object data = GetDataFromListBox(dragSource, e.GetPosition(parent));
if (data != null)
{
DragDrop.DoDragDrop(parent, data, DragDropEffects.Move);
}
}
#region GetDataFromListBox(ListBox,Point)
private static object GetDataFromListBox(ListBox source, Point point)
{
UIElement element = source.InputHitTest(point) as UIElement;
if (element != null)
{
object data = DependencyProperty.UnsetValue;
while (data == DependencyProperty.UnsetValue)
{
data = source.ItemContainerGenerator.ItemFromContainer(element);
if (data == DependencyProperty.UnsetValue)
{
element = VisualTreeHelper.GetParent(element) as UIElement;
}
if (element == source)
{
return null;
}
}
if (data != DependencyProperty.UnsetValue)
{
return data;
}
}
return null;
}
#endregion
private void ListBox_Drop(object sender, DragEventArgs e)
{
ListBox parent = (ListBox)sender;
object data = e.Data.GetData(typeof(string));
((IList)dragSource.ItemsSource).Remove(data);
parent.Items.Add(data);
}
からあるドラッグのサンプル・アプリケーションで、HTTPをドロップ:// WWW .c-sharpcorner.com/uploadfile/dpatra/item-in-listbox-in-wpf/ –
このサンプルはあらかじめ定義された2つのリスト用であり、メカニズムは一方向の方向に機能します。双方向の複数のリストが必要 – user1630359
他のリストの機能をミラーリングするだけで問題はありますか? – icebat