public void Init( IEnumerable <InspectorShelf.InspectorShelfItem> objects, Action <object> onInspectionRequested) { buttonList.Clear(); foreach (var element in objects) { var obj = element; buttonList.AddButton(obj.Name, () => onInspectionRequested(obj.Object)); } }
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(); } } }
private void SetupPage(DebugMenuItemNode node) { currentPageNode = node; buttonList.Clear(); if (node.Parent != null) { buttonList.AddButton($"{backCharacter} Back", () => { SetupPage(node.Parent); }); } foreach (var childNode in node.Children.Values) { var isFolder = childNode.IsFolder; var buttonText = childNode.Name + (isFolder ? $" {folderArrowCharacter}" : ""); UnityAction actionFunc = () => { if (isFolder) { SetupPage(childNode); } else { childNode.Action.Invoke(); if (childNode.HideOnClick) { debugMenu.Hide(); } } }; buttonList.AddButton(buttonText, actionFunc); } }
protected virtual void GenerateTreeView() { IsGenerating = true; NotifyPropertyChanged(nameof(IsGenerating)); panelMain.Children.Clear(); UpdateProgress(0, 0); ExtendedTreeView treeviewSample = new ExtendedTreeView(); treeviewSample.SetValue(ScrollViewer.IsDeferredScrollingEnabledProperty, TreeViewSettingsWindow.IsDeferredScrollingEnabled); treeviewSample.SetValue(VirtualizingPanel.IsVirtualizingProperty, TreeViewSettingsWindow.IsVirtualizing); treeviewSample.SetValue(VirtualizingPanel.VirtualizationModeProperty, TreeViewSettingsWindow.VirtualizationMode); treeviewSample.SelectionMode = TreeViewSettingsWindow.SelectionMode; treeviewSample.AllowDragDrop = TreeViewSettingsWindow.AllowDragDrop; treeviewSample.IsRootAlwaysExpanded = TreeViewSettingsWindow.IsRootAlwaysExpanded; treeviewSample.IsItemExpandedAtStart = TreeViewSettingsWindow.IsItemExpandedAtStart; treeviewSample.Content = GenerateRoot(TreeViewSettingsWindow.IsCloneable); treeviewSample.DropCheck += OnDropCheck; Collection <ResourceDictionary> MergedDictionaries = Application.Current.Resources.MergedDictionaries; MergedDictionaries.Clear(); bool IsHandled = false; switch (TreeViewSettingsWindow.TreeViewType) { case TreeViewType.VS2013: MergedDictionaries.Add(VS2013Dictionnary); treeviewSample.ExpandButtonStyle = (Style)FindResource("VS2013ExpandButtonStyle"); treeviewSample.ExpandButtonWidth = 16; treeviewSample.IndentationWidth = 16; IsHandled = true; break; case TreeViewType.Explorer: MergedDictionaries.Add(ExplorerDictionnary); ButtonList.Clear(); Style ButtonStyle = (Style)FindResource("ExplorerExpandButtonStyle"); Style NewButtonStyle = new Style(typeof(ToggleButton), ButtonStyle); NewButtonStyle.Setters.Add(new EventSetter(ToggleButton.LoadedEvent, new RoutedEventHandler(OnButtonLoaded))); NewButtonStyle.Setters.Add(new EventSetter(ToggleButton.UnloadedEvent, new RoutedEventHandler(OnButtonUnloaded))); treeviewSample.ExpandButtonStyle = NewButtonStyle; treeviewSample.ExpandButtonWidth = 12; treeviewSample.IndentationWidth = 8; treeviewSample.MouseEnter += OnTreeViewMouseEnter; treeviewSample.MouseLeave += OnTreeViewMouseLeave; IsHandled = true; break; case TreeViewType.Custom: switch (TreeViewSettingsWindow.TreeViewItemType) { case TreeViewItemType.FixedHeightImage: MergedDictionaries.Add(CustomFixedHeightImageDictionnary); IsHandled = true; break; case TreeViewItemType.Text: MergedDictionaries.Add(CustomTextImageDictionnary); IsHandled = true; break; case TreeViewItemType.VariableHeightImageAndText: MergedDictionaries.Add(CustomVariableHeightImageAndTextDictionnary); IsHandled = true; break; } break; } Debug.Assert(IsHandled); panelMain.Children.Add(treeviewSample); }