我有一个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);
}
}
这是您正常使用验证器的方法,您将输入与某个常量值进行比较。我的问题是,而不是将数字等于零。我想将数字与另一个对象的属性进行比较,但我不确定如何将此其他对象传递给验证器。