public void OptimizeDesignTimeData() { // Optimize data by sharing var shareValues = this.dataStore.Values.ToList(); while (shareValues.Count > 0) { DesignTimeObjectData data = shareValues[shareValues.Count - 1]; foreach (DesignTimeObjectData other in shareValues) { data.TryShareData(other); } shareValues.RemoveAt(shareValues.Count - 1); } }