/// <summary> /// Updates the DataBundleCollection, wherever possible updating only values and not changing the bound variables, to avoid reinjecting the collection. /// </summary> public void CopyValuesFrom(DataBundleCollection dataBundleCollection) { if (dataBundleCollection == this) { return; } List <DataBundle> remainingDataBundles = dataBundles.Where(db => dataBundleCollection.dataBundles.Contains(db)).ToList(); dataBundles.Clear(); foreach (DataBundle dataBundle in dataBundleCollection.dataBundles) { DataBundle existingDataBundle = remainingDataBundles.Find(db => db.id == dataBundle.id); if (existingDataBundle) { existingDataBundle.CopyValuesFrom(dataBundle); Add(existingDataBundle); } else { Add(dataBundle); } } }
protected virtual void Output(DataBundle dataBundle, bool copyValues = true) { DataBundleCollection dataBundleCollection = new DataBundleCollection(); dataBundleCollection.Add(dataBundle); Output(dataBundleCollection, copyValues); }
protected virtual void Output(DataBundleCollection dataBundleCollection, bool copyValues = true) { if (output.useConstant == true) { output.SetAndUseVariable(DataBundleCollectionVariable.New(dataBundleCollection)); } if (copyValues) { output.Value.CopyValuesFrom(dataBundleCollection); output.HandleChange(); } else { output.Value = dataBundleCollection; } OutputUpdated(); }
public void Inject(DataBundleCollection dataBundles) { dataBundleCollection.Value = dataBundles; UpdateChildren(); }