示例#1
0
        ///--------------------------------------------------------------------------------
        /// <summary>This method is used to copy/paste a new item.</summary>
        ///
        /// <param name="copyItem">The item to copy/paste.</param>
        /// <param name="savePaste">Flag to determine whether to save the results of the paste.</param>
        ///--------------------------------------------------------------------------------
        public ViewViewModel PasteView(ViewViewModel copyItem, bool savePaste = true)
        {
            View newItem = new View();

            newItem.ReverseInstance = new View();
            newItem.TransformDataFromObject(copyItem.View, null, false);
            newItem.ViewID        = Guid.NewGuid();
            newItem.IsAutoUpdated = false;

            newItem.Solution = Solution;
            newItem.Solution = Solution;
            ViewViewModel newView = new ViewViewModel(newItem, Solution);

            newView.ResetModified(true);
            AddView(newView);

            // paste children
            foreach (ViewPropertyViewModel childView in copyItem.ViewProperties)
            {
                newView.PasteViewProperty(childView, savePaste);
            }
            if (savePaste == true)
            {
                Solution.ViewList.Add(newItem);
                newView.OnUpdated(this, null);
                Solution.ResetModified(true);
            }
            return(newView);
        }