From 6a8e5e239072f4a54cf48521919dbdfe8fb70364 Mon Sep 17 00:00:00 2001 From: Jeremy Koritzinsky Date: Sun, 17 Apr 2016 20:40:20 -0500 Subject: [PATCH] Fixed validation propogation on direct properties. --- src/Perspex.Base/PerspexObject.cs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/Perspex.Base/PerspexObject.cs b/src/Perspex.Base/PerspexObject.cs index 9e89357c89..c0a361783a 100644 --- a/src/Perspex.Base/PerspexObject.cs +++ b/src/Perspex.Base/PerspexObject.cs @@ -401,17 +401,22 @@ namespace Perspex GetDescription(source)); IDisposable subscription = null; + IDisposable validationSubcription = null; subscription = source .Where(x => !(x is ValidationStatus)) .Select(x => CastOrDefault(x, property.PropertyType)) .Do(_ => { }, () => s_directBindings.Remove(subscription)) .Subscribe(x => DirectBindingSet(property, x)); + validationSubcription = source.OfType().Subscribe(x => ValidationChanged(property, x)); s_directBindings.Add(subscription); + s_directBindings.Add(validationSubcription); return Disposable.Create(() => { + validationSubcription.Dispose(); + s_directBindings.Remove(validationSubcription); subscription.Dispose(); s_directBindings.Remove(subscription); });