internal void SetSelectionOnItem(AdvancedDropdownItem item, int selectedIndex)
        {
            AdvancedDropdownItemState state = GetStateForItem(item);

            if (selectedIndex < 0)
            {
                state.selectedIndex = 0;
            }
            else if (selectedIndex >= item.Children.Count())
            {
                state.selectedIndex = item.Children.Count() - 1;
            }
            else
            {
                state.selectedIndex = selectedIndex;
            }
        }
Ejemplo n.º 2
0
 private AdvancedDropdownItemState GetStateForItem(AdvancedDropdownItem item)
 {
     if (m_LastSelectedState != null && m_LastSelectedState.itemId == item.id)
     {
         return(m_LastSelectedState);
     }
     for (int i = 0; i < states.Length; i++)
     {
         if (states[i].itemId == item.id)
         {
             m_LastSelectedState = states[i];
             return(m_LastSelectedState);
         }
     }
     Array.Resize(ref states, states.Length + 1);
     states[states.Length - 1] = new AdvancedDropdownItemState(item);
     m_LastSelectedState       = states[states.Length - 1];
     return(states[states.Length - 1]);
 }
        internal void MoveUpSelection(AdvancedDropdownItem item)
        {
            AdvancedDropdownItemState state = GetStateForItem(item);
            int selectedIndex = state.selectedIndex;

            do
            {
                --selectedIndex;
            }while
            (selectedIndex >= 0 && item.Children.ElementAt(selectedIndex).IsSeparator());

            if (selectedIndex < 0)
            {
                selectedIndex = item.Children.Count() - 1;
            }

            if (selectedIndex >= 0)
            {
                SetSelectionOnItem(item, selectedIndex);
            }
        }