WPF控制验证

时间:2010-06-17 18:09:32

标签: c# wpf silverlight validation wpf-controls

我正在开发一个WPF GUI框架,并且在双向绑定和许多不需要的事件被激活(主要是在Flex)中遇到了糟糕的经历,所以我走了绑定路径(表示对象路径的字符串) )在我的控件中。当请求显示视图时,控制器加载视图,并从DB获取所需的实体(使用绑定)并使用正确的值填充控件。这有许多优点,例如延迟加载,默认撤消行为等。当需要保存视图中的数据时,视图再次传递回控制器,基本上执行保留,即如果值,则从视图中重新填充实体已经改变了。

但是,当我尝试验证组件时遇到了问题。每个实体在其属性上都有属性,这些属性定义了控制器可以轻松访问的验证规则,并从视图中验证数据。数据的实际验证很好。当我希望GUI控件显示错误验证信息时,问题出现了。它我尝试改变样式我得到错误说样式一旦使用就不能改变。 c#中的一种方法是触发正常的WPF验证机制,并用控制器找到的validaiton错误证明了这一点吗?

提前致谢

乔恩

1 个答案:

答案 0 :(得分:2)

两件事:

1)信任WPF中的数据绑定。 WPF的数据绑定非常强大且非常有用 - 没有理由让你的其他框架的“糟糕体验”阻止你使用DataBinding。它将大大简化您的代码。

2)数据验证的最佳选择是使用WPF的内置数据验证功能。如果您进行数据上下文实现(数据保存用于绑定)实现IDataErrorInfo,您将获得几乎免费(并且可完全自定义)的相应验证样式。这是在WPF中处理UI上的数据验证的正确方法。

相关问题