private static void onVisiableChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { AppBarIconButton button = (AppBarIconButton)d; if (button.Owner != null) { button.Owner.RebuildButtons(); } }
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(); } } }