Да, я использую ValidatesOnDataErrors в XAML. К счастью, один из моих коллег решил эту проблему прошлой ночью, поэтому я решил поставить ее здесь на тот случай, если кто-то другой окажется в том же положении.
Чтобы проверка происходила во всех случаях, вам нужно добавить ValidatesOnExceptions = "True", а также ValidatesOnDataErrors = "True" в XAML.
<Controls:NumberTextBox IsEnabled="{Binding IsEditable}" Grid.Row="1" Grid.Column="3" Name="txtRefurbishmentFee">
<TextBox.Text>
<Binding Path="Entity.RefurbishmentFee" UpdateSourceTrigger="PropertyChanged" ValidatesOnExceptions="True" ValidatesOnDataErrors="True" />
</TextBox.Text>
</Controls:NumberTextBox>
Затем на объекте домена используйте стандартные валидаторы декорации NHibernate.
private decimal _refurbishmentFee;
[Min(Value=0)]
public decimal RefurbishmentFee
{
get { return _refurbishmentFee; }
set
{
if (_refurbishmentFee == value) return;
_refurbishmentFee = value;
OnPropertyChanged("RefurbishmentFee");
}
}
Спасибо,
Фейсал