internal void Replaced(PropertyBehavior <TComponent> old, PropertyBehavior <TComponent> newer) { old.SetParent(null); newer.SetParent(this); bool removed = _properties.Remove(old); _properties.Add(newer); }
internal PropertyBehavior <TComponent> Property(bool canGet, bool canAdd, string name, Access access) { PropertyBehavior <TComponent> found = _properties.FirstOrDefault(p => p.Name == name); if (found == null) { if (canAdd) { found = new PropertyBehavior <TComponent>(name, access); found.SetParent(this); _properties.Add(found); } } else if (!canGet) { found = null; } else { found.Decoration.AccessModifier = access; } return(found); }