void MoveBottomButton_Click(object sender, RoutedEventArgs args) { if (Extensions.Count < 2) { return; } var index = ExtensionsList.SelectedIndex; var newindex = ExtensionsList.Items.Count - 1; if (index == ExtensionsList.Items.Count - 1) { ExtensionsList.Focus(); return; } var target = Extensions[index]; Extensions.RemoveAt(index); Extensions.Insert(newindex, target); SyncWithUI(); SyncSelection(newindex); }
void MoveDownButton_Click(object sender, RoutedEventArgs args) { if (Extensions.Count < 2) { return; } var index = ExtensionsList.SelectedIndex; var newindex = index + 1; if (index == ExtensionsList.Items.Count - 1) { ExtensionsList.Focus(); return; } SwapItems(index, newindex); }
void SyncSelection(int index) { ExtensionsList.SelectedIndex = index; ExtensionsList.Focus(); ExtensionsList.ScrollIntoView(ExtensionsList.SelectedItem); }