1 //----------------------------------------------------------------
2 // <copyright company="Microsoft Corporation">
3 // Copyright (c) Microsoft Corporation. All rights reserved.
5 //----------------------------------------------------------------
7 namespace System.Activities.Presentation.Model
9 using System.Collections.Generic;
13 // this class is to share common code among classes that implements IModelTreeItem, currently ModelItemImpl, ModelItemCollectionImpl and ModelItemDictionaryImpl
14 internal class ModelTreeItemHelper
16 private List<BackPointer> extraPropertyBackPointers;
18 public ModelTreeItemHelper()
20 this.extraPropertyBackPointers = new List<BackPointer>();
23 public List<BackPointer> ExtraPropertyBackPointers
25 get { return this.extraPropertyBackPointers; }
28 public void RemoveExtraPropertyBackPointer(ModelItem parent, string propertyName)
30 Fx.Assert(parent != null, "parent should not be null");
31 Fx.Assert(!string.IsNullOrEmpty(propertyName), "propertyName should not be null or empty");
33 BackPointer backPointer = this.extraPropertyBackPointers.FirstOrDefault<BackPointer>((bp) => bp.DestinationVertex == parent && propertyName == bp.PropertyName);
34 if (backPointer != null)
36 this.extraPropertyBackPointers.Remove(backPointer);
40 Fx.Assert("BackPointer not found");