protected PropertyBindingBase(MemberBindingAttributeBase bindingAttributeBase, MemberInfo memberInfo, object target) : base(bindingAttributeBase, memberInfo, target) { if (memberInfo.MemberType != MemberTypes.Property) { ThrowCantCreateBindingForMemberTypeException(); } _propertyInfo = memberInfo.DeclaringType.GetProperty(memberInfo.Name); }
protected BindingBase(MemberBindingAttributeBase bindingAttributeBase, MemberInfo memberInfo, object target) { MemberInfo = memberInfo; Target = target; Group = bindingAttributeBase.Group; var targetType = target.GetType(); if (!bindingAttributeBase.OnPropertyChanged.IsNullOrEmpty()) { var methodInfo = targetType.GetMethod(bindingAttributeBase.OnPropertyChanged); if (methodInfo != null) { _onPropertyChanged = () => { try { methodInfo.Invoke(target, null); } catch (Exception ex) { DebugLogger.Exception(ex); } } } ; } if (!bindingAttributeBase.PropertyChangedEventName.IsNullOrEmpty()) { var eventInfo = targetType.GetEvent(bindingAttributeBase.PropertyChangedEventName); if (eventInfo != null) { eventInfo.AddEventHandler(target, Delegate.CreateDelegate(typeof(Action), this, nameof(OnPropertyChangedByTarget))); } } }