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
{