using System; using System.Collections.Generic; using System.Globalization; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using TeamAAS_VP; namespace FeTeamAAS_VPederUtility.ValidationRules { public class NumberRangeValidationRule : ValidationRule { // 定义 MaxValue 和 MinValue 作为普通属性 public int MaxValue { get; set; } = int.MaxValue; public int MinValue { get; set; } = int.MinValue; public override ValidationResult Validate(object value, CultureInfo cultureInfo) { if (value == null || string.IsNullOrEmpty(value.ToString())) { return new ValidationResult(false, "Input cannot be empty.".Replace("\\n", Environment.NewLine).Replace("\\t", "\t")); } if (int.TryParse(value.ToString(), out int number)) { if (number >= MinValue && number <= MaxValue) { return ValidationResult.ValidResult; } else { string msg = "Value must be between {MinValue} and {MaxValue}.".Replace("\\n", Environment.NewLine).Replace("\\t", "\t"); return new ValidationResult(false, msg.Replace("{MinValue}", MinValue.ToString()).Replace("{MaxValue}", MaxValue.ToString())); } } else { return new ValidationResult(false, "Invalid number format.".Replace("\\n", Environment.NewLine).Replace("\\t", "\t")); } } } }