private void TabSubjectOnReturn(object sender, KeyEventArgs e) { if (e.Key != Key.Enter) { return; } var subject = ((FrameworkElement)sender).DataContext as SubjectViewModel; if (subject == null) { return; } e.Handled = true; int row = set.Subjects.IndexOf(subject); if (row == set.Subjects.Count - 1) { AddNew(sender, e); } else { TermList.ScrollIntoView(set.Subjects[row]); Debug.Assert(SubjectList.ItemContainerGenerator != null, "SubjectList.ItemContainerGenerator != null"); FocusTextBox(SubjectList.ItemContainerGenerator.ContainerFromIndex(row + 1) as FrameworkElement); } }
private void TabTermOnReturn(object sender, KeyEventArgs e) { if (e.Key != Key.Enter && Keyboard.Modifiers == ModifierKeys.None) { return; } var textBox = (TextBox)sender; var term = (TermViewModel)textBox.DataContext; e.Handled = true; int row = set.Terms.IndexOf(term); bool onDefinition = (textBox).Name == "TermDefinition"; if (row == set.Terms.Count - 1 && onDefinition) { AddNew(sender, e); } else { if (onDefinition) { TermList.ScrollIntoView(set.Terms[row]); Debug.Assert(TermList.ItemContainerGenerator != null, "TermList.ItemContainerGenerator != null"); FocusTextBox(TermList.ItemContainerGenerator.ContainerFromIndex(row + 1) as FrameworkElement); } else { var next = ((FrameworkElement)textBox.Parent).FindName("TermDefinition") as TextBox; if (next != null) { next.Focus(); } } } }