条件付きで必要な検証を行う方法を見つけるのが難しいです。
基本的に、検証が必要なダイアログ オブジェクトがあります。ダイアログの特定の状態を決定する bool があります。
その状態が true の場合、プロパティを検証する必要があります。false の場合、プロパティは使用されないため、検証は必要ありません。同時に、値が有効でない場合の標準の検証動作、つまりプロパティがバインドされているコントロールの周りの赤い境界線を保持したいと考えています。
私が得たもののコード例:
public class Dialog
{
public bool UseValidation { get; set; }
[Required]
[StringLength(15)]
public string NotNullString { get; set; }
}
この理由は、[OK] ボタンが押されたときにダイアログを検証して、Validator.TryValidateObject()
メソッドを使用するためです。