diff --git a/src/Avalonia.Base/AvaloniaObject.cs b/src/Avalonia.Base/AvaloniaObject.cs index 4046915986..469ea573c6 100644 --- a/src/Avalonia.Base/AvaloniaObject.cs +++ b/src/Avalonia.Base/AvaloniaObject.cs @@ -352,7 +352,6 @@ namespace Avalonia GetDescription(source)); IDisposable subscription = null; - IDisposable validationSubcription = null; if (_directBindings == null) { @@ -363,15 +362,11 @@ namespace Avalonia .Select(x => CastOrDefault(x, property.PropertyType)) .Do(_ => { }, () => _directBindings.Remove(subscription)) .Subscribe(x => DirectBindingSet(property, x)); - validationSubcription = source - .OfType() - .Subscribe(x => DataValidationChanged(property, x)); _directBindings.Add(subscription); return Disposable.Create(() => { - validationSubcription.Dispose(); subscription.Dispose(); _directBindings.Remove(subscription); }); @@ -466,30 +461,6 @@ namespace Avalonia } } - /// - void IPriorityValueOwner.DataValidationChanged(PriorityValue sender, BindingNotification status) - { - var property = sender.Property; - DataValidationChanged(property, status); - } - - /// - /// Called when the validation state on a tracked property is changed. - /// - /// The property whose validation state changed. - /// The new validation state. - protected virtual void DataValidationChanged(AvaloniaProperty property, BindingNotification status) - { - } - - /// - /// Updates the validation status of the current object. - /// - /// The new validation status. - protected void UpdateValidationState(BindingNotification status) - { - } - /// Delegate[] IAvaloniaObjectDebug.GetPropertyChangedSubscribers() { diff --git a/src/Avalonia.Base/IPriorityValueOwner.cs b/src/Avalonia.Base/IPriorityValueOwner.cs index b5a0c0abc1..2483739d54 100644 --- a/src/Avalonia.Base/IPriorityValueOwner.cs +++ b/src/Avalonia.Base/IPriorityValueOwner.cs @@ -17,12 +17,5 @@ namespace Avalonia /// The old value. /// The new value. void Changed(PriorityValue sender, object oldValue, object newValue); - - /// - /// Called when the validation state of a changes. - /// - /// The source of the change. - /// The validation status. - void DataValidationChanged(PriorityValue sender, BindingNotification status); } } diff --git a/src/Avalonia.Base/PriorityBindingEntry.cs b/src/Avalonia.Base/PriorityBindingEntry.cs index 85c8c7e55c..580b593666 100644 --- a/src/Avalonia.Base/PriorityBindingEntry.cs +++ b/src/Avalonia.Base/PriorityBindingEntry.cs @@ -97,20 +97,16 @@ namespace Avalonia if (notification != null) { - if (notification.ErrorType == BindingErrorType.Error) - { - _owner.Error(this, notification); - } - else if (notification.ErrorType == BindingErrorType.DataValidationError) - { - _owner.Validation(this, notification); - } - if (notification.HasValue) { Value = notification.Value; _owner.Changed(this); } + + if (notification.ErrorType != BindingErrorType.None) + { + _owner.Error(this, notification); + } } else { diff --git a/src/Avalonia.Base/PriorityLevel.cs b/src/Avalonia.Base/PriorityLevel.cs index b056dd38b7..122a6df821 100644 --- a/src/Avalonia.Base/PriorityLevel.cs +++ b/src/Avalonia.Base/PriorityLevel.cs @@ -164,17 +164,6 @@ namespace Avalonia _owner.LevelError(this, error); } - /// - /// Invoked when an entry in reports validation status. - /// - /// The entry that completed. - /// The validation status. - public void Validation(PriorityBindingEntry entry, BindingNotification validationStatus) - { - _owner.LevelValidation(this, validationStatus); - } - - /// /// Activates the first binding that has a value. /// diff --git a/src/Avalonia.Base/PriorityValue.cs b/src/Avalonia.Base/PriorityValue.cs index 0dd18d852a..8673ab5f44 100644 --- a/src/Avalonia.Base/PriorityValue.cs +++ b/src/Avalonia.Base/PriorityValue.cs @@ -178,16 +178,6 @@ namespace Avalonia } } - /// - /// Called whenever a priority level validation state changes. - /// - /// The priority level of the changed entry. - /// The validation status. - public void LevelValidation(PriorityLevel priorityLevel, BindingNotification validationStatus) - { - _owner.DataValidationChanged(this, validationStatus); - } - /// /// Called when a priority level encounters an error. /// diff --git a/src/Avalonia.Controls/Control.cs b/src/Avalonia.Controls/Control.cs index dba221c159..82212a17fe 100644 --- a/src/Avalonia.Controls/Control.cs +++ b/src/Avalonia.Controls/Control.cs @@ -108,7 +108,6 @@ namespace Avalonia.Controls PseudoClass(IsEnabledCoreProperty, x => !x, ":disabled"); PseudoClass(IsFocusedProperty, ":focus"); PseudoClass(IsPointerOverProperty, ":pointerover"); - ////PseudoClass(ValidationStatusProperty, status => !status.IsValid, ":invalid"); } /// @@ -400,13 +399,6 @@ namespace Avalonia.Controls /// protected IPseudoClasses PseudoClasses => Classes; - /// - protected override void DataValidationChanged(AvaloniaProperty property, BindingNotification status) - { - base.DataValidationChanged(property, status); - ////ValidationStatus.UpdateValidationStatus(status); - } - /// /// Sets the control's logical parent. /// diff --git a/src/Avalonia.Controls/TextBox.cs b/src/Avalonia.Controls/TextBox.cs index be8df58ba2..58adb8106f 100644 --- a/src/Avalonia.Controls/TextBox.cs +++ b/src/Avalonia.Controls/TextBox.cs @@ -235,14 +235,6 @@ namespace Avalonia.Controls HandleTextInput(e.Text); } - protected override void DataValidationChanged(AvaloniaProperty property, BindingNotification status) - { - if (property == TextProperty) - { - UpdateValidationState(status); - } - } - private void HandleTextInput(string input) { if (!IsReadOnly) diff --git a/tests/Avalonia.Markup.Xaml.UnitTests/Data/BindingTests_Validation.cs b/tests/Avalonia.Markup.Xaml.UnitTests/Data/BindingTests_Validation.cs index d0adb1e03f..82ea33257e 100644 --- a/tests/Avalonia.Markup.Xaml.UnitTests/Data/BindingTests_Validation.cs +++ b/tests/Avalonia.Markup.Xaml.UnitTests/Data/BindingTests_Validation.cs @@ -124,14 +124,6 @@ namespace Avalonia.Markup.Xaml.UnitTests.Data SetValue(ValidationTestProperty, value); } } - - protected override void DataValidationChanged(AvaloniaProperty property, BindingNotification status) - { - if (property == ValidationTestProperty) - { - UpdateValidationState(status); - } - } } private class ValidationTestModel