Validación discreta C # MVC Razor

¿Es posible tener una validación discreta para hacer que un campo sea obligatorio pero solo si otras propiedades cambian?

Por ejemplo

[Required]
public Decimal Income {get; set;}
[Required]
public Decimal Tax {get; set;}
//Required if tax or income changes
public string ChangeReason {get; set;}

Pensé en tener varios campos de la tienda de respaldo y escribir un Validador personalizado para compararlos, pero me pregunté si alguien tenía una mejor sugerencia.

Respuestas a la pregunta(2)

Su respuesta a la pregunta