验证L2S问题

时间:2009-09-04 02:49:50

标签: c# wpf linq-to-sql validation mvvm

这可能有点啰嗦,因为我是wpf的新手。我已经为我的L2S类中的实体创建了一个部分类,主要用于验证。它实现了onchanging和onvalidate方法。我正在尝试使用MVVM模式,在窗口/视图中我已经在xaml中设置了datacontext:

<Window.DataContext>
    <vm:StartViewModel />
</Window.DataContext>

当用户在视图空白处留下必填字段时,关闭表单时会触发部分类的onchanging事件,而不是在保存数据时触发。因此,如果用户将文本框留空,则保留旧值并触发onchaging方法,但我不知道如何提醒用户产生的错误。这是我在部分类中的改变代码:

    partial void Ondocument_titleChanging(string value)
    {
        if (value.Length == 0)
            throw new Exception("Document title is required.");
        if (value.Length > 256)
            throw new Exception("Document title cannot be longer than 256 characters.");
    }

抛出异常不会通知用户错误。它只允许表单关闭并拒绝对文本框的更改。

希望这是有道理的......

编辑:  这个例子来自Scott Guthries的文章: http://aspalliance.com/1427_LINQ_to_SQL_Part_5__Binding_UI_using_the_ASPLinqDataSource_Control.5

1 个答案:

答案 0 :(得分:0)

好吧,想通了。我需要将以下内容添加到控件绑定中:

Text="{Binding Path=CurrentDocument.document_title, ValidatesOnDataErrors=True, NotifyOnValidationError=True, UpdateSourceTrigger=PropertyChanged}"