Browse Source

Fixed validation propogation on direct properties.

pull/514/head
Jeremy Koritzinsky 10 years ago
parent
commit
6a8e5e2390
  1. 5
      src/Perspex.Base/PerspexObject.cs

5
src/Perspex.Base/PerspexObject.cs

@ -401,17 +401,22 @@ namespace Perspex
GetDescription(source)); GetDescription(source));
IDisposable subscription = null; IDisposable subscription = null;
IDisposable validationSubcription = null;
subscription = source subscription = source
.Where(x => !(x is ValidationStatus)) .Where(x => !(x is ValidationStatus))
.Select(x => CastOrDefault(x, property.PropertyType)) .Select(x => CastOrDefault(x, property.PropertyType))
.Do(_ => { }, () => s_directBindings.Remove(subscription)) .Do(_ => { }, () => s_directBindings.Remove(subscription))
.Subscribe(x => DirectBindingSet(property, x)); .Subscribe(x => DirectBindingSet(property, x));
validationSubcription = source.OfType<ValidationStatus>().Subscribe(x => ValidationChanged(property, x));
s_directBindings.Add(subscription); s_directBindings.Add(subscription);
s_directBindings.Add(validationSubcription);
return Disposable.Create(() => return Disposable.Create(() =>
{ {
validationSubcription.Dispose();
s_directBindings.Remove(validationSubcription);
subscription.Dispose(); subscription.Dispose();
s_directBindings.Remove(subscription); s_directBindings.Remove(subscription);
}); });

Loading…
Cancel
Save