Model-View-Presenter:验证UI

时间:2009-05-20 15:25:05

标签: c# validation user-interface mvp

我正在寻找关于如何在模型 - 视图 - 演示者架构中进行UI验证的最佳实践方法。

我需要使用大量控件验证某些表单。为了方便用户,我将所有错误或警告存储在日志中,并在之后显示给用户,以便他可以立即跳转到他必须修复的控件。这是在视图部分中完成的,这实际上是错误的,因为验证应该在演示者中进行,以便交换视图。

我在演示者中进行此验证的问题是,它不仅仅是检查提供的值是否错误,还需要检查是否已经选中了radiobuttons,它启用了一个文本框,然后必须包含一些文本示例

我在考虑在演示者中使用BindingSource,因为它反映了UI的变化并且对于演示者是可见的。但我不确定这是否是正确的方法(我认为这有点难看)?

顺便说一下:在我写入数据库之前,验证不仅仅需要放置;它已经在用户处理表单时发生。

有人能想到这样做的好方法吗?

1 个答案:

答案 0 :(得分:2)

我们终于找到了解决方案。 它将按照我的预期完成,使用演示者中的DataSet,由不同的验证器类(每个“页面”一个)处理。最困难的部分是,当控件相互依赖时(但最后它只是检查是否在DataSet中设置了值)。目前无法跳转到控件来修复错误,但稍后会通过将控件的名称传递给LogEntries来反映这一点,然后视图可以找出此控件的位置。