//---------------------------------------------------------------- // // Copyright (c) Microsoft Corporation. All rights reserved. // //---------------------------------------------------------------- namespace System.Activities.Presentation.Model { using System.Collections.Generic; using System.Linq; using System.Runtime; // this class is to share common code among classes that implements IModelTreeItem, currently ModelItemImpl, ModelItemCollectionImpl and ModelItemDictionaryImpl internal class ModelTreeItemHelper { private List extraPropertyBackPointers; public ModelTreeItemHelper() { this.extraPropertyBackPointers = new List(); } public List ExtraPropertyBackPointers { get { return this.extraPropertyBackPointers; } } public void RemoveExtraPropertyBackPointer(ModelItem parent, string propertyName) { Fx.Assert(parent != null, "parent should not be null"); Fx.Assert(!string.IsNullOrEmpty(propertyName), "propertyName should not be null or empty"); BackPointer backPointer = this.extraPropertyBackPointers.FirstOrDefault((bp) => bp.DestinationVertex == parent && propertyName == bp.PropertyName); if (backPointer != null) { this.extraPropertyBackPointers.Remove(backPointer); } else { Fx.Assert("BackPointer not found"); } } } }