我有一个窗口,有 8 行代表 8 个输出通道,在每个通道中我可以有时间步长。所以我在每个通道前面都有一个文本框来设置时间步长值的上限和下限。我现在要做的是编写一个验证器来检查用户输入是否在这些限制之内。我不确定如何执行此操作,因为当调用验证器时,它不知道从哪个通道调用它的时间步长,而且我认为不可能将额外信息传递给验证器。
编辑:
public class NumberValidator : ValidationRule
{
public override ValidationResult Validate (object value, System.Globalization.CultureInfo cultureInfo)
{
double number = 0;
try
{
number = Convert.ToDouble(value.ToString()); // Check for numeric value
}
catch (Exception)
{
return new ValidationResult(false, "Value must be numeric");
}
if (number == 0) // Check for non-zero value
{
return new ValidationResult(false, "Value must be non-zero");
}
return new ValidationResult(true, null);
}
}
这就是您通常使用验证器的方式,您将输入与某个常量值进行比较。我的问题是,而不是比较数字等于零。我想将数字与另一个对象的属性进行比较,但我不确定如何将这个另一个对象传递给验证器。