diff --git a/src/Perspex.Base/PerspexObject.cs b/src/Perspex.Base/PerspexObject.cs
index 5c4271a57d..5310651514 100644
--- a/src/Perspex.Base/PerspexObject.cs
+++ b/src/Perspex.Base/PerspexObject.cs
@@ -185,7 +185,8 @@ namespace Perspex
sourceBinding.Source.Bind(sourceBinding.Property, this.GetObservable(binding.Property), binding.Priority);
break;
case BindingMode.TwoWay:
- BindTwoWay(binding.Property, sourceBinding.Source, sourceBinding.Property);
+ var subject = sourceBinding.Source.GetSubject(sourceBinding.Property, sourceBinding.Priority);
+ this.Bind(binding.Property, subject, BindingMode.TwoWay, sourceBinding.Priority);
break;
}
}
@@ -480,67 +481,6 @@ namespace Perspex
}
}
- ///
- /// Initiates a two-way binding between s.
- ///
- /// The property on this object.
- /// The source object.
- /// The property on the source object.
- /// The priority of the binding.
- ///
- /// A disposable which can be used to terminate the binding.
- ///
- ///
- /// The binding is first carried out from to this.
- ///
- public IDisposable BindTwoWay(
- PerspexProperty property,
- PerspexObject source,
- PerspexProperty sourceProperty,
- BindingPriority priority = BindingPriority.LocalValue)
- {
- VerifyAccess();
- _propertyLog.Verbose(
- "Bound two way {Property} to {Binding} with priority {Priority}",
- property,
- source,
- priority);
-
- return new CompositeDisposable(
- Bind(property, source.GetObservable(sourceProperty)),
- source.Bind(sourceProperty, this.GetObservable(property)));
- }
-
- ///
- /// Initiates a two-way binding between a and an
- /// .
- ///
- /// The property on this object.
- /// The subject to bind to.
- /// The priority of the binding.
- ///
- /// A disposable which can be used to terminate the binding.
- ///
- ///
- /// The binding is first carried out from to this.
- ///
- public IDisposable BindTwoWay(
- PerspexProperty property,
- ISubject