Model-View-Presenter: проверка пользовательского интерфейса - PullRequest
3 голосов
/ 20 мая 2009

Я ищу наилучший подход к проверке пользовательского интерфейса в архитектуре модель-представление-презентатор.

Мне нужно проверить некоторые формы с большим количеством элементов управления. И чтобы было проще для пользователя, я храню все ошибки или предупреждения со ссылкой на элемент управления в журнале, который впоследствии отображается для пользователя, чтобы он мог сразу перейти к элементу управления, который должен исправить. Это делается в области просмотра, что на самом деле неверно, поскольку в презентаторе должна проводиться проверка для обмена представлением.

Для меня проблема выполнения этой проверки в докладчике заключается в том, что она не просто проверяет, являются ли предоставленные значения неправильными, но также должна проверять, проверены ли радиокнопки, что позволяет вводить текстовое поле, которое затем должно содержать некоторый текст для пример.

Я думал об использовании BindingSource в докладчике, поскольку он отражает изменения пользовательского интерфейса и виден докладчику. Но я не уверен, что это правильный путь (и я думаю, что это некрасиво)?

Кстати: проверка происходит не только перед тем, как я пишу в базу данных; это уже происходит, пока пользователь работает с формами.

Может ли кто-нибудь придумать хороший способ сделать это?

1 Ответ

2 голосов
/ 30 июня 2009

Мы наконец нашли решение. Это будет сделано, как я и ожидал, используя DataSet в презентере, который обрабатывается различными классами валидаторов (по одному для каждой из наших «страниц»). Самая сложная часть - это когда элементы управления зависят друг от друга (но, в конце концов, это просто проверка, установлены ли значения в DataSet). В настоящее время невозможно перейти к элементу управления, чтобы исправить ошибки, но это будет добавлено позже с помощью Reflection, передав имя элемента в LogEntries, и представление затем сможет выяснить, где находится этот элемент управления.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...