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);
}
}
これは、バリデーターを通常使用する方法です。入力を定数値と比較します。私の問題は、数値がゼロに等しいことを比較するのではなく、ということです。数値を別のオブジェクトの属性と比較したいのですが、この別のオブジェクトをバリデーターに渡す方法がわかりません。