public DataContextChangeSynchronizer(PerspexObject target, PerspexProperty targetProperty, PropertyPath sourcePropertyPath, object source, ITypeConverterProvider typeConverterProvider) { Guard.ThrowIfNull(target, nameof(target)); Guard.ThrowIfNull(targetProperty, nameof(targetProperty)); Guard.ThrowIfNull(sourcePropertyPath, nameof(sourcePropertyPath)); Guard.ThrowIfNull(source, nameof(source)); Guard.ThrowIfNull(typeConverterProvider, nameof(typeConverterProvider)); this.bindingEndpoint = new TargetBindingEndpoint(target, targetProperty); this.sourceEndpoint = new ObservablePropertyBranch(source, sourcePropertyPath); this.targetPropertyTypeConverter = typeConverterProvider.GetTypeConverter(targetProperty.PropertyType); }
public DataContextChangeSynchronizer(BindingSource bindingSource, BindingTarget bindingTarget, ITypeConverterProvider typeConverterProvider) { _bindingTarget = bindingTarget; Guard.ThrowIfNull(bindingTarget.Object, nameof(bindingTarget.Object)); Guard.ThrowIfNull(bindingTarget.Property, nameof(bindingTarget.Property)); Guard.ThrowIfNull(bindingSource.SourcePropertyPath, nameof(bindingSource.SourcePropertyPath)); Guard.ThrowIfNull(bindingSource.Source, nameof(bindingSource.Source)); Guard.ThrowIfNull(typeConverterProvider, nameof(typeConverterProvider)); _bindingEndpoint = new TargetBindingEndpoint(bindingTarget.Object, bindingTarget.Property); _sourceEndpoint = new ObservablePropertyBranch(bindingSource.Source, bindingSource.SourcePropertyPath); _targetPropertyTypeConverter = typeConverterProvider.GetTypeConverter(bindingTarget.Property.PropertyType); }