コード例 #1
0
 private void SearchTextBox_PreviewKeyDown(object sender, KeyEventArgs e)
 {
     if (e.Key == Key.Down)
     {
         if (ResultsOpen)
         {
             var items     = GetResultItems().ToList();
             var nextIndex = items.IndexOf(SelectedResultItem) + 1;
             if (nextIndex < items.Count)
             {
                 items[nextIndex].IsSelected = true;
                 e.Handled = true;
             }
         }
     }
     else if (e.Key == Key.Up)
     {
         if (ResultsOpen)
         {
             var items     = GetResultItems().ToList();
             var prevIndex = items.IndexOf(SelectedResultItem) - 1;
             if (prevIndex >= 0)
             {
                 items[prevIndex].IsSelected = true;
                 e.Handled = true;
             }
         }
     }
     else if (e.Key == Key.Tab || e.Key == Key.Enter)
     {
         if (ResultsOpen)
         {
             SelectResultItemCommand?.Execute(SelectedResultItem.DataContext);
             if (e.Key == Key.Enter)
             {
                 e.Handled = true;
             }
         }
     }
 }
コード例 #2
0
        private void OnResultItemClicked(object sender, RoutedEventArgs e)
        {
            ResultItem item = e.OriginalSource as ResultItem;

            SelectResultItemCommand?.Execute(item.DataContext);
        }