English 中文(简体)
WPF - MVVM - NHibernate Validation
原标题:

Im facing a bit of an issue when trying to validate a decimal property on domain object which is bound to a textbox on the view through the viewmodel.

I am using NHibernate to decorate my property on the domain object as below.

private decimal _refurbishmentFee;
[Min(Value=0), NotNull]
public decimal RefurbishmentFee
{
    get { return _refurbishmentFee; }
    set 
    {
        if (_refurbishmentFee == value) return;
        _refurbishmentFee = value;
        OnPropertyChanged("RefurbishmentFee");
    }
}

The validation works fine if I put in a number less than 0, however if I put in alpha characters or a space then nothing happens, the application doesn t even fall into the setter.

Any help?

Thanks Faisal

最佳回答

Yes I am using ValidatesOnDataErrors in the XAML. Fortunately one of my colleagues resolved this issue last night so I thought I should put it on here in case someone else is in the same position.

To get the validation to occur in all cases you need to add ValidatesOnExceptions="True" as well as ValidatesOnDataErrors="True" in the 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>

Then on the domain object use standard NHibernate validation decorators.

private decimal _refurbishmentFee;
[Min(Value=0)]
public decimal RefurbishmentFee
{
    get { return _refurbishmentFee; }
    set 
    {
        if (_refurbishmentFee == value) return;
        _refurbishmentFee = value;
        OnPropertyChanged("RefurbishmentFee");
    }
}

Thanks, Faisal

问题回答

暂无回答




相关问题
WPF convert 2d mouse click into 3d space

I have several geometry meshes in my Viewport3D, these have bounds of (w:1800, h:500, d:25). When a user clicks in the middle of the mesh, I want the Point3D of (900, 500, 25)... How can I achieve ...

Editing a xaml icons or images

Is it possible to edit a xaml icons or images in the expression design or using other tools? Is it possible to import a xaml images (that e.g you have exported) in the expression designer for editing?...

WPF: writing smoke tests using ViewModels

I am considering to write smoke tests for our WPF application. The question that I am faced is: should we use UI automation( or some other technology that creates a UI script), or is it good enough to ...

WPF - MVVM - NHibernate Validation

Im facing a bit of an issue when trying to validate a decimal property on domain object which is bound to a textbox on the view through the viewmodel. I am using NHibernate to decorate my property on ...

How do WPF Markup Extensions raise compile errors?

Certain markup extensions raise compile errors. For example StaticExtension (x:Static) raises a compile error if the referenced class cannot be found. Anyone know the mechanism for this? Is it baked ...

WPF design-time context menu

I am trying to create a custom wpf control, I m wondering how I can add some design-time features. I ve googled and can t seem to get to my goal. So here s my simple question, how can I add an entry ...

How to combine DataTrigger and EventTrigger?

NOTE I have asked the related question (with an accepted answer): How to combine DataTrigger and Trigger? I think I need to combine an EventTrigger and a DataTrigger to achieve what I m after: when ...

热门标签