|
|
@ -352,7 +352,6 @@ namespace Avalonia |
|
|
GetDescription(source)); |
|
|
GetDescription(source)); |
|
|
|
|
|
|
|
|
IDisposable subscription = null; |
|
|
IDisposable subscription = null; |
|
|
IDisposable validationSubcription = null; |
|
|
|
|
|
|
|
|
|
|
|
if (_directBindings == null) |
|
|
if (_directBindings == null) |
|
|
{ |
|
|
{ |
|
|
@ -363,15 +362,11 @@ namespace Avalonia |
|
|
.Select(x => CastOrDefault(x, property.PropertyType)) |
|
|
.Select(x => CastOrDefault(x, property.PropertyType)) |
|
|
.Do(_ => { }, () => _directBindings.Remove(subscription)) |
|
|
.Do(_ => { }, () => _directBindings.Remove(subscription)) |
|
|
.Subscribe(x => DirectBindingSet(property, x)); |
|
|
.Subscribe(x => DirectBindingSet(property, x)); |
|
|
validationSubcription = source |
|
|
|
|
|
.OfType<BindingNotification>() |
|
|
|
|
|
.Subscribe(x => DataValidationChanged(property, x)); |
|
|
|
|
|
|
|
|
|
|
|
_directBindings.Add(subscription); |
|
|
_directBindings.Add(subscription); |
|
|
|
|
|
|
|
|
return Disposable.Create(() => |
|
|
return Disposable.Create(() => |
|
|
{ |
|
|
{ |
|
|
validationSubcription.Dispose(); |
|
|
|
|
|
subscription.Dispose(); |
|
|
subscription.Dispose(); |
|
|
_directBindings.Remove(subscription); |
|
|
_directBindings.Remove(subscription); |
|
|
}); |
|
|
}); |
|
|
@ -466,30 +461,6 @@ namespace Avalonia |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
/// <inheritdoc/>
|
|
|
|
|
|
void IPriorityValueOwner.DataValidationChanged(PriorityValue sender, BindingNotification status) |
|
|
|
|
|
{ |
|
|
|
|
|
var property = sender.Property; |
|
|
|
|
|
DataValidationChanged(property, status); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Called when the validation state on a tracked property is changed.
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="property">The property whose validation state changed.</param>
|
|
|
|
|
|
/// <param name="status">The new validation state.</param>
|
|
|
|
|
|
protected virtual void DataValidationChanged(AvaloniaProperty property, BindingNotification status) |
|
|
|
|
|
{ |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Updates the validation status of the current object.
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="status">The new validation status.</param>
|
|
|
|
|
|
protected void UpdateValidationState(BindingNotification status) |
|
|
|
|
|
{ |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/// <inheritdoc/>
|
|
|
/// <inheritdoc/>
|
|
|
Delegate[] IAvaloniaObjectDebug.GetPropertyChangedSubscribers() |
|
|
Delegate[] IAvaloniaObjectDebug.GetPropertyChangedSubscribers() |
|
|
{ |
|
|
{ |
|
|
|