public abstract void MakeObjectId(IValueNodesVM vm);
 bool IsEmpty(IValueNodesVM vm) => !vm.TreeView.Root.DataChildren.OfType <ValueNodeImpl>().Any(a => !a.IsEditNode);
 public override bool SupportsPaste(IValueNodesVM vm) => !(vm is null) && vm.CanAddRemoveExpressions;
 public abstract void SetCurrentLanguage(IValueNodesVM vm, DbgLanguage language);
 bool HasSelectedNodes(IValueNodesVM vm) => vm.TreeView.SelectedItems.OfType <ValueNodeImpl>().Any(a => !a.IsEditNode);
 public abstract bool CanCollapseChildren(IValueNodesVM vm);
 public abstract IList <DbgLanguage> GetLanguages(IValueNodesVM vm);
 public abstract void Refresh(IValueNodesVM vm);
 public abstract bool CanShowInMemoryWindow(IValueNodesVM vm);
 public abstract void Save(IValueNodesVM vm);
 public abstract bool CanRefresh(IValueNodesVM vm);
 public abstract bool CanSave(IValueNodesVM vm);
 public abstract void DeleteObjectId(IValueNodesVM vm);
 public abstract bool CanDeleteObjectId(IValueNodesVM vm);
 public abstract bool CanExpandChildren(IValueNodesVM vm);
 public abstract void ShowInMemoryWindow(IValueNodesVM vm);
 public abstract void ExpandChildren(IValueNodesVM vm);
 public abstract bool CanShowInMemoryWindow(IValueNodesVM vm, int windowIndex);
 public abstract void CollapseChildren(IValueNodesVM vm);
 public abstract void ShowInMemoryWindow(IValueNodesVM vm, int windowIndex);
 public abstract DbgLanguage?GetCurrentLanguage(IValueNodesVM vm);
 public abstract bool CanToggleExpanded(IValueNodesVM vm);
        ValueNodeImpl?SelectedNode(IValueNodesVM vm)
        {
            var nodes = vm.TreeView.SelectedItems;

            return(nodes.Length != 1 ? null : nodes[0] as ValueNodeImpl);
        }
 public abstract void ToggleExpanded(IValueNodesVM vm);
 IEnumerable <ValueNodeImpl> SelectedNodes(IValueNodesVM vm) => vm.TreeView.SelectedItems.OfType <ValueNodeImpl>().Where(a => !a.IsEditNode);
 public abstract bool CanCollapseParent(IValueNodesVM vm);
 public override bool CanCopyValue(IValueNodesVM vm) => CanExecCommands(vm) && HasSelectedNodes(vm);
 public abstract void CollapseParent(IValueNodesVM vm);
 bool CanExecCommands(IValueNodesVM vm) => CanExecCommands(vm, isWatch: false);
 public abstract bool CanMakeObjectId(IValueNodesVM vm);