24 lines
749 B
C#
24 lines
749 B
C#
using System;
|
|
using System.ComponentModel.DataAnnotations;
|
|
|
|
namespace Sai.Toolkit.Mvvm.Attributes;
|
|
|
|
[AttributeUsage(AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Parameter)]
|
|
public sealed class GreaterThanAttribute : ValidationAttribute
|
|
{
|
|
public GreaterThanAttribute(string propertyName)
|
|
{
|
|
PropertyName = propertyName;
|
|
}
|
|
|
|
public string PropertyName { get; }
|
|
|
|
protected override ValidationResult IsValid(object value, ValidationContext validationContext)
|
|
{
|
|
object instance = validationContext.ObjectInstance,
|
|
otherValue = instance.GetType().GetProperty(PropertyName).GetValue(instance);
|
|
|
|
return ((IComparable)value).CompareTo(otherValue) > 0 ? ValidationResult.Success : new($"当前值小于{value}");
|
|
}
|
|
}
|