void IDropTarget.Drop(IDropInfo dropInfo) { if (dropInfo != null) { if (dropInfo.VisualTarget is FrameworkElement frameworkElement) { if (frameworkElement.Name == "ComparisonRecordItemControl" || frameworkElement.Name == "ComparisonImage") { if (dropInfo.Data is IFileRecordInfo recordInfo) { AddComparisonItem(recordInfo); } if (dropInfo.Data is ComparisonRecordInfoWrapper wrappedRecordInfo) { // manage sorting int currentIndex = ComparisonRecords.IndexOf(wrappedRecordInfo); if (dropInfo.InsertIndex < ComparisonRecords.Count) { ComparisonRecords.Move(currentIndex, dropInfo.InsertIndex); foreach (var rowSeries in ComparisonRowChartSeriesCollection) { var chartValueList = (rowSeries.Values as IList <double>).Reverse().ToList(); chartValueList.Move(currentIndex, dropInfo.InsertIndex); chartValueList.Reverse(); rowSeries.Values.Clear(); rowSeries.Values.AddRange(chartValueList.Select(chartValue => chartValue as object)); } var labelList = ComparisonRowChartLabels.Reverse().ToList(); labelList.Move(currentIndex, dropInfo.InsertIndex); labelList.Reverse(); ComparisonRowChartLabels = labelList.ToArray(); } } } } } }