From a2daea9d1a085452c79f7e9628911b04603d606d Mon Sep 17 00:00:00 2001 From: Alvaro Rivoir Date: Fri, 31 May 2024 12:49:56 -0300 Subject: [PATCH] fix #881 --- .../ComponentModel/ObservableValidator.cs | 1 + .../Test_ObservableValidator.cs | 15 ++++++++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/CommunityToolkit.Mvvm/ComponentModel/ObservableValidator.cs b/src/CommunityToolkit.Mvvm/ComponentModel/ObservableValidator.cs index 02921bf07..6c83c9125 100644 --- a/src/CommunityToolkit.Mvvm/ComponentModel/ObservableValidator.cs +++ b/src/CommunityToolkit.Mvvm/ComponentModel/ObservableValidator.cs @@ -123,6 +123,7 @@ protected ObservableValidator(ValidationContext validationContext) } /// + [Display(AutoGenerateField = false)] public bool HasErrors => this.totalErrors > 0; /// diff --git a/tests/CommunityToolkit.Mvvm.UnitTests/Test_ObservableValidator.cs b/tests/CommunityToolkit.Mvvm.UnitTests/Test_ObservableValidator.cs index af4b9f4be..7b09d1073 100644 --- a/tests/CommunityToolkit.Mvvm.UnitTests/Test_ObservableValidator.cs +++ b/tests/CommunityToolkit.Mvvm.UnitTests/Test_ObservableValidator.cs @@ -607,7 +607,20 @@ public void Test_ObservableValidator_ValidateAllProperties_IncludeInheritedPrope Assert.IsFalse(model.HasErrors); Assert.IsTrue(events.Count == 1); - Assert.IsTrue(events.Any(e => e.PropertyName == nameof(DerivedModelWithValidatableProperties.Name))); } + Assert.IsTrue(events.Any(e => e.PropertyName == nameof(DerivedModelWithValidatableProperties.Name))); + } + + // See https://github.com/CommunityToolkit/dotnet/issues/881 + [TestMethod] + public void Test_ObservableValidator_HasErrors_IncludeNonAutogenerateAttribute() + { + DerivedModelWithValidatableProperties model = new(); + + DisplayAttribute? displayAttribute = model.GetType().GetProperty(nameof(ObservableValidator.HasErrors))?.GetCustomAttribute(); + + Assert.IsNotNull(displayAttribute); + Assert.IsFalse(displayAttribute.AutoGenerateField); + } public class Person : ObservableValidator {