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