/// <summary> /// Handles the search field onfocusin event. /// </summary> /// <param name="eventArgs">Event arguments.</param> /// <returns>Returns awaitable task</returns> protected async Task OnTextKeyDownHandler(KeyboardEventArgs eventArgs) { if (!DropdownVisible) { return; } // make sure everything is filtered if (dirtyFilter) { FilterData(); } var activeItemIndex = ActiveItemIndex; if (eventArgs.Code == "Enter" || eventArgs.Code == "NumpadEnter" || eventArgs.Code == "Tab") { var item = FilteredData.ElementAtOrDefault(activeItemIndex); if (item != null && ValueField != null) { await OnDropdownItemClicked(ValueField.Invoke(item)); } } else if (eventArgs.Code == "Escape") { await Clear(); } else if (eventArgs.Code == "ArrowUp") { UpdateActiveFilterIndex(--activeItemIndex); } else if (eventArgs.Code == "ArrowDown") { UpdateActiveFilterIndex(++activeItemIndex); } }