如何在silverlight中点击按钮验证输入?

我使用DataAnnotation来验证输入控件.但ValidatesOnExceptions仅在用户在文本框中键入内容并按Tab键时才有效. (基本上是关于Lostfocus事件).

但如果用户从未在文本框中输入任何内容,请单击“提交”.这是行不通的.像ASP.NET一样.IsValid属性是否可以使用Silverlight中的任何属性或方法,这将验证UI上的所有控件?

解决方法

从Terence提供的URL获取帮助,我已经为您准备了以下解决方案.
这可以用来确保在服务调用之前设置所有属性.

public class PersonViewModel : EntityBase 
{
    private readonly RelayCommand saveCommand;

    public PersonViewModel(IServiceAgent serviceAgent)
    {
        saveCommand = new RelayCommand(Save) { IsEnabled = true };
    }   

    public RelayCommand SaveCommand // Binded with SaveButton
    {
        get { return saveCommand; }
    }   

    public String Name // Binded with NameTextBox
    {
        get
        {
            return name;
        }
        set
        {
            name = value;
            PropertyChangedHandler("Name");                
            ValidateName("Name",value);
        }
    }

    public Int32 Age // Binded with AgeTextBox
    {
        get
        {
            return age;
        }
        set
        {
            age = value;
            PropertyChangedHandler("Age");
            ValidateAge("Age",value);
        }
    }

    private void ValidateName(string propertyName,String value)
    {
        ClearErrorFromProperty(propertyName);
        if (/*SOME CONDITION*/)     
            AddErrorForProperty(propertyName,"/*NAME ERROR MESSAGE*/");        
    }

    private void ValidateAge(string propertyName,Int32 value)
    {
        ClearErrorFromProperty(propertyName);
        if (/*SOME CONDITION*/)     
            AddErrorForProperty(propertyName,"/*AGE ERROR MESSAGE*/");             
    }   

    public void Save() 
    {
        ValidateName("Name",name);
        ValidateAge("Age",age);        
        if (!HasErrors)
        {                
            //SAVE CALL TO SERVICE
        }
    }       
}

相关文章

如何在Silverlight4(XAML)中绑定IsEnabled属性?我试过简单的...
我正在编写我的第一个vb.net应用程序(但我也会在这里标记c#,...
ProcessFile()是在UIThread上运行还是在单独的线程上运行.如...
我从同行那里听说,对sharepoint的了解对职业生涯有益.我们不...
我正在尝试保存一个类我的类对象的集合.我收到一个错误说明:...
我需要根据Silverlight中的某些配置值设置给定控件的Style.我...