private void Switch(int a, int b)
        {
            PriorityElement obj = Collection[a];

            Collection[a] = Collection[b];
            Collection[b] = obj;
        }
        public void btnDown_Click()
        {
            if (SelectedIndex < 0)
            {
                return;
            }

            int      boxIndex        = SelectedIndex;
            Priority priority        = Collection[boxIndex].Priority;
            Priority currentPriority = priority;

            if (boxIndex == Collection.Count - 1 || Collection[boxIndex].Priority != Collection[boxIndex + 1].Priority)
            {
                Priority newPriority = (boxIndex < Collection.Count - 1) ? Collection[boxIndex + 1].Priority : new Priority(currentPriority[0] + 1);

                Priority nextPriority = getNextPriority(currentPriority, newPriority);
                object   obj          = Collection[boxIndex].Value;
                Collection[boxIndex] = new PriorityElement(StringConv, nextPriority, obj);
                SelectedIndex        = boxIndex;
            }
            else
            {
                int selectedIndex = SelectedIndex;
                Switch(boxIndex, boxIndex + 1);
                SelectedIndex = selectedIndex + 1;
            }
        }
        private void changePriority(Priority priority, int index, Priority newPriority)
        {
            PriorityElement item = Collection[index];

            Collection.RemoveAt(index);

            int newBoxIndex = findBoxIndex(newPriority, 0);

            Collection.Insert(newBoxIndex, new PriorityElement(StringConv, newPriority, item.Value));
            SelectedIndex = newBoxIndex;
        }
 private void editItem(Priority priority, int index, object element)
 {
     Collection[index] = new PriorityElement(StringConv, priority, element);
     SelectedIndex     = index;
 }