示例#1
0
        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);
            }
        }
示例#2
0
        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();
                    }
                }
            }
        }