At.FF.Krems.Config_Gui.MainWindow.ElementListOnDrop C# (CSharp) Méthode

ElementListOnDrop() private méthode

The element list on drop.
private ElementListOnDrop ( object sender, System.Windows.DragEventArgs e ) : void
sender object The sender.
e System.Windows.DragEventArgs The instance containing the event data.
Résultat void
        private void ElementListOnDrop(object sender, DragEventArgs e)
        {
            var droppedData = e.Data.GetData(typeof(Configuration.XML.Window)) as Configuration.XML.Window;
            var listBox = sender as ListBox;
            if (listBox == null)
            {
                return;
            }

            var target = GetDataFromListBox(listBox, e.GetPosition(listBox)) as Configuration.XML.Window;

            var removedIdx = this.ViewModel.Windows.IndexOf(droppedData);
            var targetIdx = target == null ? this.ViewModel.Windows.Count - 1 : this.ViewModel.Windows.IndexOf(target);

            if (removedIdx < targetIdx)
            {
                this.ViewModel.Windows.Insert(targetIdx + 1, droppedData);
                this.ViewModel.Windows.RemoveAt(removedIdx);
            }
            else
            {
                var remIdx = removedIdx + 1;
                if (this.ViewModel.Windows.Count + 1 <= remIdx)
                {
                    return;
                }

                this.ViewModel.Windows.Insert(targetIdx, droppedData);
                this.ViewModel.Windows.RemoveAt(remIdx);
            }

            this.ViewModel.SelectedWindow = this.ViewModel.Windows[targetIdx];
        }