public override void Drop(DragEventArgs e, int index) { string[] files = e.Data.GetData(AssemblyTreeNode.DataFormat) as string[]; if (files == null) { files = e.Data.GetData(DataFormats.FileDrop) as string[]; } if (files != null) { var assemblies = files .Where(file => file != null) .Select(file => assemblyList.OpenAssembly(file)) .Where(asm => asm != null) .Distinct() .ToArray(); assemblyList.Move(assemblies, index); var nodes = assemblies.SelectArray(MainWindow.Instance.FindTreeNode); MainWindow.Instance.SelectNodes(nodes); } }