protected void ConnectSourceAndTarget() { switch (realMode) { case BindingMode.OneTime: break; case BindingMode.OneWay: source.PropertyChanged += SourceListener; break; case BindingMode.OneWayToSource: if (null == adapter) { ((INotifyPropertyChanged)target).PropertyChanged += TargetListener; } else { targetListenerWrapper = adapter.AddPropertyChangedListener(target, TargetListener); } break; case BindingMode.TwoWay: source.PropertyChanged += SourceListener; // if (null == adapter) { ((INotifyPropertyChanged)target).PropertyChanged += TargetListener; } else { targetListenerWrapper = adapter.AddPropertyChangedListener(target, TargetListener); } break; } }