Browse Source

Update OneWayToSource binding when DataContext changes.

Fixes #2470
pull/2486/head
Steven Kirk 7 years ago
parent
commit
197d7d4904
  1. 6
      src/Avalonia.Base/Data/BindingOperations.cs
  2. 2
      src/Avalonia.Base/Data/Core/PropertyAccessorNode.cs

6
src/Avalonia.Base/Data/BindingOperations.cs

@ -65,7 +65,11 @@ namespace Avalonia.Data
return Disposable.Empty;
}
case BindingMode.OneWayToSource:
return target.GetObservable(property).Subscribe(binding.Subject);
return Observable.CombineLatest(
binding.Observable,
target.GetObservable(property),
(_, v) => v)
.Subscribe(x => binding.Subject.OnNext(x));
default:
throw new ArgumentException("Invalid binding mode.");
}

2
src/Avalonia.Base/Data/Core/PropertyAccessorNode.cs

@ -59,8 +59,8 @@ namespace Avalonia.Data.Core
$"Could not find a matching property accessor for {PropertyName}.");
}
accessor.Subscribe(ValueChanged);
_accessor = accessor;
accessor.Subscribe(ValueChanged);
}
protected override void StopListeningCore()

Loading…
Cancel
Save