/// <summary> /// When down key is pressed, selected element should move forward. /// When up key is pressed, selected element should move back. /// </summary> public void MoveSelection(Direction direction) { var oldItem = FilteredResults.FirstOrDefault(item => item.IsSelected); if (oldItem == null) { return; } int newItemIndex = FilteredResults.IndexOf(oldItem); if ((newItemIndex <= 0 && direction == Direction.Up) || (newItemIndex >= FilteredResults.Count() - 1 && direction == Direction.Down)) { return; } if (direction == Direction.Down) { newItemIndex++; } else { newItemIndex--; } oldItem.IsSelected = false; var newItem = FilteredResults.ElementAt(newItemIndex); newItem.IsSelected = true; }
/// <summary> /// Executes selected item in search UI. /// </summary> public void ExecuteSelectedItem() { var selected = FilteredResults.FirstOrDefault(item => item.IsSelected); if (selected != null) { selected.ClickedCommand.Execute(null); } }