Beispiel #1
0
        /// <summary>
        /// Add a menu item directly.
        /// </summary>
        /// <param name="text">Text to display on the menu item.</param>
        /// <param name="value">Value selected by the menu item.</param>
        public void AddDropdownItem(string text, T value)
        {
            if (itemMap.ContainsKey(value))
            {
                throw new ArgumentException($"The item {value} already exists in this {nameof(Dropdown<T>)}.");
            }

            var newItem = new DropdownMenuItem <T>(text, value, () =>
            {
                if (!Current.Disabled)
                {
                    Current.Value = value;
                }

                Menu.State = MenuState.Closed;
            });

            Menu.Add(newItem);
            itemMap[value] = newItem;
        }
Beispiel #2
0
 /// <summary>
 /// Shows an item from this <see cref="DropdownMenu"/>.
 /// </summary>
 /// <param name="item">The item to show.</param>
 public void HideItem(DropdownMenuItem <T> item) => Children.FirstOrDefault(c => c.Item == item)?.Hide();
Beispiel #3
0
 /// <summary>
 /// Hides an item from this <see cref="DropdownMenu"/>
 /// </summary>
 /// <param name="item"></param>
 public void ShowItem(DropdownMenuItem <T> item) => Children.FirstOrDefault(c => c.Item == item)?.Show();
Beispiel #4
0
 /// <summary>
 /// Selects an item from this <see cref="DropdownMenu"/>.
 /// </summary>
 /// <param name="item">The item to select.</param>
 public void SelectItem(DropdownMenuItem <T> item)
 {
     Children.OfType <DrawableDropdownMenuItem>().ForEach(c => c.IsSelected = c.Item == item);
 }