Browse Source

Feat/19059 add automation for validation error (#19161)

* try to add Automation/Peers/DataValidationErrorsAutomationPeer.cs

* add missing file

* change to use .ToString() instead of fileter only string type

* 19059 resolve maxkatz6's comment

* 19059 resolve comment

* 19059 check if GetTip return null or whitespace

* 19059 take the error higher piority than the tooltip

---------

Co-authored-by: Long Bui <long.bui@taitcommunications.com>
Co-authored-by: Max Katz <maxkatz6@outlook.com>
pull/19225/head
bui bao long 7 months ago
committed by GitHub
parent
commit
647f3e0de7
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 11
      src/Avalonia.Controls/Automation/Peers/ControlAutomationPeer.cs
  2. 1
      src/Avalonia.Controls/DataValidationErrors.cs

11
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()
{

1
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
{
/// <summary>

Loading…
Cancel
Save