/// <inheritdoc/>
        internal override IDisposable?RouteSetValue(
            AvaloniaObject o,
            object?value,
            BindingPriority priority)
        {
            var v = TryConvert(value);

            if (v.HasValue)
            {
                o.SetValue <TValue>(this, (TValue)v.Value !);
            }
            else if (v.Type == BindingValueType.UnsetValue)
            {
                o.ClearValue(this);
            }
            else if (v.HasError)
            {
                throw v.Error !;
            }

            return(null);
        }
 /// <inheritdoc/>
 internal override void RouteClearValue(AvaloniaObject o)
 {
     o.ClearValue <TValue>(this);
 }