Как указано здесь , проверка данных зависит от привязки, однако, как отмечено в том же посте, существуют обходные пути.Одним из таких обходных путей является привязка свойства, которое вы хотите проверить, к фиктивной переменной.Если вы используете текстовое поле, вы можете связать его со свойством tag
текстового поля следующим образом:
<TextBox>
<TextBox.Text>
<Binding RelativeSource="{RelativeSource Self}" Path="Tag" Mode="OneWayToSource" UpdateSourceTrigger="PropertyChanged">
<Binding.ValidationRules>
<local:NumericValidationRule />
</Binding.ValidationRules>
</Binding>
</TextBox.Text>
</TextBox>
Где local:NumericValidationRule
определено в другом месте.Если вы не можете создать свои элементы управления с помощью xaml, вы все равно можете получить тот же эффект с помощью кода.