diff --git a/src/Avalonia.Controls/Automation/Peers/ControlAutomationPeer.cs b/src/Avalonia.Controls/Automation/Peers/ControlAutomationPeer.cs index 0dff2db3c2..7115399647 100644 --- a/src/Avalonia.Controls/Automation/Peers/ControlAutomationPeer.cs +++ b/src/Avalonia.Controls/Automation/Peers/ControlAutomationPeer.cs @@ -117,15 +117,22 @@ namespace Avalonia.Automation.Peers return result; } protected override string? GetHelpTextCore() - { + { var result = AutomationProperties.GetHelpText(Owner); + if (string.IsNullOrWhiteSpace(result)) + { + var errors = DataValidationErrors.GetErrors(Owner); + var errorsStringList = errors?.Select(x => x.ToString()); + result = errorsStringList != null ? string.Join(Environment.NewLine, errorsStringList.ToArray()) : null; + } + if (string.IsNullOrWhiteSpace(result)) { result = ToolTip.GetTip(Owner) as string; } - return result; + return result; } protected override AutomationPeer? GetParentCore() { diff --git a/src/Avalonia.Controls/DataValidationErrors.cs b/src/Avalonia.Controls/DataValidationErrors.cs index f11c621030..21e9eae26d 100644 --- a/src/Avalonia.Controls/DataValidationErrors.cs +++ b/src/Avalonia.Controls/DataValidationErrors.cs @@ -5,7 +5,6 @@ using Avalonia.Reactive; using Avalonia.Controls.Metadata; using Avalonia.Controls.Templates; using Avalonia.Data; - namespace Avalonia.Controls { ///