Sco*_*ttG 28 validation wpf validationrules
在单击"保存"按钮之前,我有一个页面,其中几个文本框不能为空.
<TextBox...
<TextBox.Text>
<Binding Path ="LastName" UpdateSourceTrigger="PropertyChanged">
<Binding.ValidationRules>
<local:StringRequiredValidationRule />
</Binding.ValidationRules>
</Binding>
</TextBox.Text>
Run Code Online (Sandbox Code Playgroud)
我的规则有效.我的文本框周围有一个红色边框,直到我输入一个值.所以现在我想将此验证规则添加到我的其他文本框中.
现在,如何在页面没有错误之前禁用"保存"按钮?我不知道要检查什么是否有任何验证错误.
Dev*_*per 18
以下是您需要的完整示例.
http://codeblitz.wordpress.com/2009/05/08/wpf-validation-made-easy-with-idataerrorinfo/
https://skydrive.live.com/?cid=2c6600f1c1d5e3be&id=2C6600F1C1D5E3BE%21203

Chr*_*oph 17
在视图的代码隐藏中,您可以像这样连接Validation.ErrorEvent;
this.AddHandler(Validation.ErrorEvent,new RoutedEventHandler(OnErrorEvent));
Run Code Online (Sandbox Code Playgroud)
然后
private int errorCount;
private void OnErrorEvent(object sender, RoutedEventArgs e)
{
var validationEventArgs = e as ValidationErrorEventArgs;
if (validationEventArgs == null)
throw new Exception("Unexpected event args");
switch(validationEventArgs.Action)
{
case ValidationErrorEventAction.Added:
{
errorCount++; break;
}
case ValidationErrorEventAction.Removed:
{
errorCount--; break;
}
default:
{
throw new Exception("Unknown action");
}
}
Save.IsEnabled = errorCount == 0;
}
Run Code Online (Sandbox Code Playgroud)
这假设您将收到删除通知(如果您删除有问题的元素,则不会发生这种情况).
您想使用Validation.HasError附加属性.
沿着同样的路线,Josh Smith在没有创建调试Spew的情况下对Binding to(Validation.Errors)[0]进行了有趣的阅读.
| 归档时间: |
|
| 查看次数: |
52116 次 |
| 最近记录: |