public override bool TrySetMember(SetMemberBinder binder, object value) { var tValue = (DelegateAddRemove <PropertyChangedEventHandler>)value; string tGuid; if (tValue.IsAdding) { if (!_uniqueEvents.TryGetValue(tValue.Delegate, out tGuid)) { tGuid = Guid.NewGuid().ToString(); _uniqueEvents.Add(tValue.Delegate, tGuid); EventStore.Add(tGuid, tValue.Delegate); } _parent.DependencyLink(tGuid, binder.Name); } else { if (_uniqueEvents.TryGetValue(tValue.Delegate, out tGuid)) { _parent.DependencyUnlink(tGuid, binder.Name); } } return(true); }
/// <summary> /// Links the property with the dependency. /// </summary> public void Link() { _parent.DependencyLink(_property, _dependency); }