Exemple #1
0
        /// <summary>
        /// Prepares the specified element to display the specified item.
        /// </summary>
        /// <param name="element">Element used to display the specified item.</param>
        /// <param name="item">Specified item.</param>
        protected override void PrepareContainerForItemOverride(DependencyObject element, object item)
        {
            base.PrepareContainerForItemOverride(element, item);
            DropDownItemBaseControl control = item as DropDownItemBaseControl;

            if (control != null)
            {
                control.ParentDropDownList = this;
            }
        }
Exemple #2
0
        /// <summary>
        /// Invoked when the <see cref="E:System.Windows.UIElement.KeyDown" /> event is received.
        /// </summary>
        /// <param name="e">Information about the event.</param>
        protected override void OnKeyDown(KeyRoutedEventArgs e)
        {
            if (!e.Handled)
            {
                switch (e.Key)
                {
                case VirtualKey.Left:
                case VirtualKey.Up:
                    goto Label_0046;

                case VirtualKey.Right:
                case VirtualKey.Down:
                    goto Label_0056;

                case VirtualKey.Escape:
                    Close();
                    e.Handled = true;
                    break;

                case VirtualKey.Tab:
                    if (CoreWindow.GetForCurrentThread().GetKeyState(VirtualKey.Shift) == CoreVirtualKeyStates.None)
                    {
                        goto Label_0056;
                    }
                    goto Label_0046;

                case VirtualKey.Enter:
                    if (SelectedItemIndex >= 0)
                    {
                        DropDownItemBaseControl control = base.ContainerFromIndex(SelectedItemIndex) as DropDownItemBaseControl;
                        if (control != null)
                        {
                            if (!control.CanExecuteCommand())
                            {
                                break;
                            }
                            control.ExecuteCommand();
                        }
                    }
                    Close();
                    e.Handled = true;
                    break;
                }
            }
            goto Label_00C3;
Label_0046:
            SelectNextItem(false);
            e.Handled = true;
            goto Label_00C3;
Label_0056:
            SelectNextItem(true);
            e.Handled = true;
Label_00C3:
            base.OnKeyDown(e);
        }
Exemple #3
0
        bool SelectItem(int index, bool forward)
        {
            DropDownItemBaseControl control = base.ContainerFromIndex(index) as DropDownItemBaseControl;

            if ((control == null) || !control.CanSelect)
            {
                return(false);
            }
            if (SelectedItemIndex >= 0)
            {
                DropDownItemBaseControl control2 = base.ContainerFromIndex(SelectedItemIndex) as DropDownItemBaseControl;
                if (control2 != null)
                {
                    control2.IsSelected = false;
                }
            }
            control.IsSelected = true;
            control.SelectChild(forward);
            SelectedItemIndex = index;
            return(true);
        }