diff --git a/src/VisualStudio/Core/Def/Implementation/ChangeSignature/ChangeSignatureDialog.xaml b/src/VisualStudio/Core/Def/Implementation/ChangeSignature/ChangeSignatureDialog.xaml index 2e843d29aca0d489a63652721ca6881926316559..4d0a13b43a26681588a67c27484c3d96e71e78dd 100644 --- a/src/VisualStudio/Core/Def/Implementation/ChangeSignature/ChangeSignatureDialog.xaml +++ b/src/VisualStudio/Core/Def/Implementation/ChangeSignature/ChangeSignatureDialog.xaml @@ -48,20 +48,24 @@ 2 + + + + - - + + @@ -308,7 +312,7 @@ DialogResult = false; private void MoveUp_Click(object sender, EventArgs e) + { + MoveUp_UpdateSelectedIndex(); + SetFocusToSelectedRow(false); + } + + private void MoveUp_Click_FocusRow(object sender, EventArgs e) + { + MoveUp_UpdateSelectedIndex(); + SetFocusToSelectedRow(true); + } + + private void MoveUp_UpdateSelectedIndex() { var oldSelectedIndex = Members.SelectedIndex; if (_viewModel.CanMoveUp && oldSelectedIndex >= 0) @@ -93,11 +103,21 @@ private void MoveUp_Click(object sender, EventArgs e) Members.Items.Refresh(); Members.SelectedIndex = oldSelectedIndex - 1; } - - SetFocusToSelectedRow(); } private void MoveDown_Click(object sender, EventArgs e) + { + MoveDown_UpdateSelectedIndex(); + SetFocusToSelectedRow(false); + } + + private void MoveDown_Click_FocusRow(object sender, EventArgs e) + { + MoveDown_UpdateSelectedIndex(); + SetFocusToSelectedRow(true); + } + + private void MoveDown_UpdateSelectedIndex() { var oldSelectedIndex = Members.SelectedIndex; if (_viewModel.CanMoveDown && oldSelectedIndex >= 0) @@ -106,8 +126,6 @@ private void MoveDown_Click(object sender, EventArgs e) Members.Items.Refresh(); Members.SelectedIndex = oldSelectedIndex + 1; } - - SetFocusToSelectedRow(); } private void Remove_Click(object sender, RoutedEventArgs e) @@ -118,7 +136,7 @@ private void Remove_Click(object sender, RoutedEventArgs e) Members.Items.Refresh(); } - SetFocusToSelectedRow(); + SetFocusToSelectedRow(true); } private void Restore_Click(object sender, RoutedEventArgs e) @@ -129,7 +147,7 @@ private void Restore_Click(object sender, RoutedEventArgs e) Members.Items.Refresh(); } - SetFocusToSelectedRow(); + SetFocusToSelectedRow(true); } private void Add_Click(object sender, RoutedEventArgs e) @@ -157,7 +175,7 @@ private void Add_Click(object sender, RoutedEventArgs e) _viewModel.AddParameter(addedParameter); } - SetFocusToSelectedRow(); + SetFocusToSelectedRow(false); } private CallSiteKind GetCallSiteKind(AddParameterDialogViewModel addParameterViewModel) @@ -178,7 +196,7 @@ private CallSiteKind GetCallSiteKind(AddParameterDialogViewModel addParameterVie : CallSiteKind.Value; } - private void SetFocusToSelectedRow() + private void SetFocusToSelectedRow(bool focusRow) { if (Members.SelectedIndex >= 0) { @@ -188,7 +206,7 @@ private void SetFocusToSelectedRow() row = Members.ItemContainerGenerator.ContainerFromIndex(Members.SelectedIndex) as DataGridRow; } - if (row != null) + if (row != null && focusRow) { FocusRow(row); } @@ -216,7 +234,7 @@ private void MoveSelectionUp_Click(object sender, EventArgs e) } } - SetFocusToSelectedRow(); + SetFocusToSelectedRow(true); } private void MoveSelectionDown_Click(object sender, EventArgs e) @@ -227,7 +245,7 @@ private void MoveSelectionDown_Click(object sender, EventArgs e) Members.SelectedIndex = oldSelectedIndex + 1; } - SetFocusToSelectedRow(); + SetFocusToSelectedRow(true); } private void Members_GotKeyboardFocus(object sender, KeyboardFocusChangedEventArgs e) @@ -238,7 +256,7 @@ private void Members_GotKeyboardFocus(object sender, KeyboardFocusChangedEventAr Members.SelectedIndex = _viewModel.GetStartingSelectionIndex(); } - SetFocusToSelectedRow(); + SetFocusToSelectedRow(true); } private void ToggleRemovedState(object sender, ExecutedRoutedEventArgs e) @@ -253,7 +271,7 @@ private void ToggleRemovedState(object sender, ExecutedRoutedEventArgs e) } Members.Items.Refresh(); - SetFocusToSelectedRow(); + SetFocusToSelectedRow(true); } internal TestAccessor GetTestAccessor()