3
A
回答
1
IDataErrorInfo是WPF的数据验证机制。你不喜欢微软的一致性吗? ;)
这样对您的视图模型实现IDataErrorInfo的:
public class MyViewModel : IDataErrorInfo
{
public string Error
{
get {
return GetErrorStringForThisViewModelInGeneral();
}
}
public string this[string columnName]
{
get
{
string result = null;
switch (columnName)
{
case "Quantity":
if (Quantity <= 0)
result = "Quantity must be greater than 1.";
break;
}
return result;
}
}
里面的属性(又名这个[])验证的,你可以在EnterpriseLibrary,使用属性自定义验证,或任何使用验证你喜欢。我只是展示了一个基本的实现来帮助你开始。
相关问题
- 1. Django SMTP身份验证最佳做法
- 2. 异步/等待方法和异常处理的最佳做法
- 3. Wpf动画最佳做法
- 4. 在iOS中进行异步调用同步的最佳做法?
- 5. 同步容器中异步Javascript调用的最佳做法?
- 6. 异步删除ListView/RecyclerView项目的最佳做法
- 7. 显示MVP模式验证错误的最佳做法
- 8. SessionId /身份验证令牌生成的最佳做法
- 9. 分配厨师验证密钥的最佳做法
- 10. Chrome扩展程序:关于身份验证的最佳做法
- 11. 做jsf表单验证的最佳方法
- 12. 从验证功能回复额外信息的最佳做法
- 13. 在VueJS中存储身份验证令牌的最佳做法?
- 14. 在JSP中验证参数的最佳做法是什么?
- 15. Grails验证字符串为整数范围的最佳做法
- 16. 使用Cookies进行PHP验证的最佳做法是什么?
- 17. 做jQuery表单验证的最佳方法?
- 18. 最佳做法异常处理
- 19. 在jQuery上验证电子邮件回复最佳做法
- 20. SQL文件流身份验证最佳做法
- 21. “Form” - 验证(Javascript)的最佳方法
- 22. 执行XMLObject验证的最佳方法
- 23. 为异步方法创建和关闭WCF客户端的最佳做法
- 24. 异步Webrequest最佳实践
- 25. 最佳做法response.getOutputStream
- 26. 最佳做法UIScrollView
- 27. 最佳做法applicationDidEnterBackground
- 28. estimatedHeightForRowAtIndexPath最佳做法
- 29. Angular2异步验证器
- 30. 异步控制验证
对不起,我指的是异步验证 - 即通过Web服务验证数量。 – Alberto
要使验证异步,您应该旋转一个线程来执行验证(以避免挂起应用程序),然后当结果返回时,对要验证的属性(例如数量)执行NotifyPropertyChanged。当通知发生时,WPF将重新验证该字段,并且您应该能够设置一个条件,以便它不会远程重新验证(因为自上次验证以来该值未更改)。 –
这就是我的想法 - 耻辱它需要这样一个样板代码:( – Alberto