private static void onVisiableChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            AppBarIconButton button = (AppBarIconButton)d;

            if (button.Owner != null)
            {
                button.Owner.RebuildButtons();
            }
        }
Beispiel #2
0
        protected override void OnItemsChanged(NotifyCollectionChangedEventArgs e)
        {
            base.OnItemsChanged(e);

            if (DesignerProperties.IsInDesignTool)
            {
                return;
            }

            ButtonList.Clear();
            WrappedObject.Buttons.Clear();
            MenuItemList.Clear();
            WrappedObject.MenuItems.Clear();
            foreach (object item in Items)
            {
                if (item is AppBarIconButton)
                {
                    AppBarIconButton button = (AppBarIconButton)item;
                    button.Owner = this;
                    if (button.Visiable)
                    {
                        WrappedObject.Buttons.Add(button.WrappedObject);
                    }
                    ButtonList.Add(button);
                }
                else if (item is AppBarMenuItem)
                {
                    WrappedObject.MenuItems.Add(((AppBarMenuItem)item).WrappedObject);
                    MenuItemList.Add((AppBarMenuItem)item);
                }
                else
                {
                    throw new InvalidCastException();
                }
            }
        }