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()