Validação discreta C # MVC Razor

É possível ter uma validação discreta para tornar um campo obrigatório, mas somente se outras propriedades mudarem?

Por exemplo

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

Pensei em ter vários campos de armazenamento de apoio e escrever um Validador Personalizado para compará-los, mas imaginei se alguém teria uma sugestão melhor?

questionAnswers(2)

yourAnswerToTheQuestion