要在客戶端驗證錯誤仍然有效時停止保存按鈕可用,您可以嘗試此操作。
在你的類(代碼隱藏或視圖模型)中,你將得到一些提供你正在使用的RIA實體的當前實例。
public SampleRIAEntity SelectedEntity { get; set; }
使用這種擴展方法:
public static class RiaExtensions
{
public static bool CheckValidation<T>(this T riaEntity) where T : Entity
{
ValidationContext vc = new ValidationContext(riaEntity, null, null);
ICollection<ValidationResult> validationResults = new List<ValidationResult>();
return (Validator.TryValidateObject(riaEntity, vc, validationResults) == true);
}
}
你可以提供的保存按鈕用的IsEnabled使用屬性。
public bool HasErrors
{
get
{
return SelectedEntity.CheckValidation<SampleRIAEntity>();
}
}
那麼這將在所有客戶端上提供的驗證規則運行。如果存在不滿意的服務器端規則,則保存仍然不能提交。
來源
2010-11-17 12:15:49
Rus