本文整理汇总了C#中IModelSystemStructure.Clone方法的典型用法代码示例。如果您正苦于以下问题:C# IModelSystemStructure.Clone方法的具体用法?C# IModelSystemStructure.Clone怎么用?C# IModelSystemStructure.Clone使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IModelSystemStructure
的用法示例。
在下文中一共展示了IModelSystemStructure.Clone方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ModuleContextMenu_InsertRequested
private void ModuleContextMenu_InsertRequested(IModelSystemStructure toInsert)
{
this.FocusedSelectedModule = -1;
this.SetModuleFocus();
var parent = this.GetParent(this.ModelSystemDisplay.SelectedModule);
var clone = toInsert.Clone();
if(parent == null)
{
if(this.ModelSystem != null)
{
this.AddCommand(new SetModelSystemRootCommand(UpdateRootAction, this.ModelSystem, clone));
}
else
{
this.AddCommand(new SetProjectRootCommand(UpdateRootAction, this._Project, this.ProjectModelSystemNumber, clone));
}
this.ModelSystemDisplay.RootModule = toInsert;
this.RefreshLinkedParameters();
this.SetupParameters(clone);
this.SetupModelSystem();
}
else
{
var selected = this.ModelSystemDisplay.SelectedModule;
if(selected.IsCollection)
{
if(toInsert.IsCollection)
{
if(clone.Children == null) return;
foreach(var child in clone.Children)
{
this.AddCommand(new AddToModuleListCommand(selected, child));
}
this.ModelSystemDisplay.SelectedModule = selected.Children[selected.Children.Count - 1];
}
else
{
this.AddCommand(new AddToModuleListCommand(selected, toInsert.Clone()));
this.ModelSystemDisplay.SelectedModule = selected.Children[selected.Children.Count - 1];
}
this.SetupModelSystem();
}
else
{
// process being inserted into a non list where the parent is a list
if(parent.IsCollection)
{
var collection = parent.Children;
var collectionLength = collection.Count;
for(int i = 0; i < collectionLength; i++)
{
if(collection[i] == this.ModelSystemDisplay.SelectedModule)
{
this.AddCommand(new ModuleSwapCommand(this.GetLinkParameters(), parent, i, clone));
this.ModelSystemDisplay.SelectedModule = clone;
this.RefreshLinkedParameters();
this.SetupModelSystem();
break;
}
}
}
else
{
// Process being inserted into a non list where the parent is also not a list.
var collection = parent.Children;
if(collection == null)
{
AddCommand(new SetModelSystemRootCommand(UpdateRootAction, ModelSystem, clone));
}
else
{
var collectionLength = collection.Count;
for(int i = 0; i < collectionLength; i++)
{
if(collection[i] == this.ModelSystemDisplay.SelectedModule)
{
this.AddCommand(new ModuleSwapCommand(this.GetLinkParameters(), parent, i, clone));
this.ModelSystemDisplay.SelectedModule = clone;
this.RefreshLinkedParameters();
break;
}
}
}
this.SetupParameters(clone);
this.SetupModelSystem();
}
}
}
this.Save();
}