protected override void MonitorCurrentTargetOverride() { if (CurrentTarget is INotifyPropertyChanged notifyPropertyChanged) { notifyPropertyChanged.PropertyChanged += _weakHandlerWrapper; } _propertyReader = PropertyReaderFactory.Create <object>(CurrentTarget.GetType(), PropertyName); }
protected override void MonitorCurrentTargetOverride() { CurrentTarget?.GetType().GetEvent(PropertyName + "Changed")?.GetAddMethod() .Invoke(CurrentTarget, new object[] { _actualHandler }); _propertyReader = PropertyReaderFactory.Create <object>(CurrentTarget?.GetType(), PropertyName); }
/// <summary> /// When overridden in a derived class, gives the class an opportunity to monitor the current target. /// </summary> protected override void MonitorCurrentTargetOverride() { var currentTarget = CurrentTarget as INotifyPropertyChanged; if (currentTarget != null) { currentTarget.PropertyChanged += _weakHandlerWrapper; } _propertyReader = PropertyReaderFactory.Create <object>(CurrentTarget.GetType(), PropertyName); }
/// <summary> /// When overridden in a derived class, gives the class an opportunity to monitor the current target. /// </summary> protected override void MonitorCurrentTargetOverride() { if (CurrentTarget != null) { var eventInfo = CurrentTarget.GetType().GetEvent(PropertyName + "Changed"); if (eventInfo != null) { var addMethod = eventInfo.GetAddMethod(); if (addMethod != null) { addMethod.Invoke(CurrentTarget, new object[] { _actualHandler }); } } } _propertyReader = PropertyReaderFactory.Create <object>(CurrentTarget.GetType(), PropertyName); }
void AddFromParametersObject(object args) { if (args == null) { return; } var type = args.GetType(); foreach (var property in type.GetTypeInfo().GetProperties()) { var rw = PropertyReaderFactory.Create <object>(type, property.Name); var value = rw.Read(args); this[property.Name] = value; } }