public void Add(LadderDiagramViewModel ldmodel) { if (!SubRoutines.Contains(ldmodel)) { SubRoutines.Add(ldmodel); IsModify = true; } }
public bool Open(XElement rootNode) { ProjectName = rootNode.Attribute("Name").Value; PLCDeviceManager.GetPLCDeviceManager().SetSelectDeviceType((PLCDeviceType)Enum.Parse(typeof(PLCDeviceType), rootNode.Attribute("DeviceType").Value)); SubRoutines.Clear(); FuncBlocks.Clear(); ValueAliasManager.Clear(); ValueCommentManager.Clear(); InstructionCommentManager.Clear(); ProjectHelper.LoadValueCommentsByXElement(rootNode.Element("ValueComments")); ProjectHelper.LoadValueAliasByXElement(rootNode.Element("ValueAlias")); ProjectPropertyManager.LoadProjectPropertyByXElement(rootNode.Element("ProjectPropertyParams")); MMonitorManager.MMWindow.LoadTablesByXElement(rootNode.Element("Tables")); EleInitializeData = rootNode.Element("EleInitialize"); var ldnodes = rootNode.Elements("Ladder"); foreach (XElement ldnode in ldnodes) { var ldmodel = ProjectHelper.CreateLadderDiagramByXElement(ldnode, this); if (ldmodel.IsMainLadder) { MainRoutine = ldmodel; } else { SubRoutines.Add(ldmodel); TreeViewItem item = new TreeViewItem(); item.Header = ldmodel; } } // Open FunctionBlock var fbnodes = rootNode.Elements("FuncBlock"); foreach (XElement fbnode in fbnodes) { var fbmodel = ProjectHelper.CreateFuncBlockByXElement(fbnode, this); FuncBlocks.Add(fbmodel); } var mtnodes = rootNode.Element("Modbus"); var mtmodel = new ModbusTableViewModel(this); mtmodel.Load(mtnodes); MTVModel = mtmodel; return(true); }