public FormInstanceSubmodel(FormDescSubmodel desc) : base(null, desc) { // require desc! if (desc == null || desc.SubmodelElements == null) { // done return; } foreach (var subDesc in desc.SubmodelElements) { var los = new FormInstanceListOfSame(this, subDesc); var pair = new FormDescInstancesPair(subDesc, los); PairInstances.Add(pair); } }
public FormInstanceSubmodelElementCollection( FormInstanceListOfSame parentInstance, FormDescSubmodelElementCollection parentDesc, AdminShell.SubmodelElement source = null) { // way back to description this.desc = parentDesc; this.parentInstance = parentInstance; var smecDesc = this.desc as FormDescSubmodelElementCollection; // initialize Referable var smec = new AdminShell.SubmodelElementCollection(); this.sme = smec; InitReferable(parentDesc, source); // initially create pairs if (smecDesc?.value != null) { foreach (var subDesc in smecDesc.value) { var los = new FormInstanceListOfSame(this, subDesc); var pair = new FormDescInstancesPair(subDesc, los); PairInstances.Add(pair); } } // check, if a source is present this.sourceSme = source; var smecSource = this.sourceSme as AdminShell.SubmodelElementCollection; if (smecSource != null) { if (this.PairInstances != null) { foreach (var pair in this.PairInstances) { pair?.instances?.PresetInstancesBasedOnSource(smecSource.value); } } } // create user control this.subControl = new FormSubControlSMEC(); this.subControl.DataContext = this; }