Exemple #1
0
        protected override bool CanPasteIntoItem(IPasteResult pasteResult, AssetCompositeItemViewModel item, out string error)
        {
            // try to paste as hierarchy
            var hierarchy = pasteResult.Items[0].Data as AssetCompositeHierarchyData <UIElementDesign, UIElement>;

            if (hierarchy != null)
            {
                var contentControl = item as ContentControlViewModel;
                if (contentControl != null && hierarchy.RootParts.Count > 1)
                {
                    error = $"({contentControl.Name}) can only have one child as content. {hierarchy.RootParts.Count} elements can't be pasted into it.";
                    return(false);
                }
            }

            return(base.CanPasteIntoItem(pasteResult, item, out error));
        }
        private static void ExpandElementRecursively([NotNull] TreeView treeView, AssetCompositeItemViewModel item)
        {
            // Since treeview can have virtualization and also a lot of items, we dispatch the recursive expansion amongst successive frames
            treeView.Dispatcher.BeginInvoke(new Action(() =>
            {
                var viewItem = treeView.GetTreeViewItemFor(item);
                if (viewItem == null)
                {
                    return;
                }

                viewItem.IsExpanded = true;
                foreach (var child in item.EnumerateChildren())
                {
                    ExpandElementRecursively(treeView, child);
                }
            }), DispatcherPriority.ApplicationIdle);
        }