Я использую winforms в течение многих лет. Обычно я пишу форму и эту форму, в коде позади делает все (проверяет ввод пользователя, общается с базой данных ...). Недавно друг познакомил меня с MVP, и я пытался научиться его использовать. Проблема, с которой я сталкиваюсь, дублирует некоторые вещи, которые я использовал, чтобы иметь возможность делать с формой. Например, в прошлом, если у меня было текстовое поле, и пользователь ввел что-то недействительное в текстовое поле, я мог бы повернуть это текстовое поле красным, установить фокус на текстовое поле и предупредить пользователя о том, что они ввели что-то недействительное в этом тестовом поле. Теперь, когда моя проверка выполняется на уровне презентатора или модели, я могу сообщить пользователю сообщения, что что-то недействительно, но как я могу настроить фокусировку на элемент управления или изменить цвет управления?Проверка контроля пользовательского интерфейса с представлением модели Presenter (MVP)
0
A
ответ
0
В любом случае ваш ведущий ссылается на представление, поэтому вы можете просто манипулировать виджетами (текстовыми полями и т. Д.) Непосредственно из презентатора. Или, возможно, лучше иметь метод в виде, например, nameIsInvalid()
, где вы пишете желаемое поведение (изменение цвета, настройка фокуса). Этот метод вызывается, когда ведущий замечает, что проверка ввода не удалась.
Валидация сама по себе должна быть выполнена в модели, поскольку она независима от вида.
Как всегда, вам не нужно быть супер догматиком об этом. Если имеет смысл иметь некоторую простую проверку, связанную непосредственно с виджетами, то оставьте ее там. Но окончательную проверку всей формы следует обрабатывать, как я описал выше.
Смежные вопросы
- 1. Реализация CastleWindsor с представлением модели Presenter (MVP)
- 2. MVP - Просмотр модели Presenter
- 3. Модели в модели View Presenter MVP
- 4. Пример модели Swing Model View Presenter (MVP)
- 5. MVP: Presenter Singleton
- 6. MVP: Вопросы о роли Presenter
- 7. MVP Presenter and Events
- 8. Просмотр модели Presenter - Обработка более сложных элементов управления пользовательского интерфейса
- 9. MVP - Model View Presenter
- 10. MVP (модель View Presenter) или MVC (контроллер просмотра модели)
- 11. Обновление контроля пользовательского интерфейса с помощью Knockout.js
- 12. Android MVP: Доступ Content Provider в Presenter
- 13. Проверка правильности разметки пользовательского контроля
- 14. Проверка ввода пользователя в Windows Forms Реализация модели View Presenter
- 15. Кнопка пользовательского контроля Wpf не запускает ICommand в Presenter
- 16. Проверка модели AJAX с частичным представлением
- 17. Как ограничить поиск контроля кодированного пользовательского интерфейса
- 18. Циркулярные зависимости в бобах MVP-Presenter (Vaadin)
- 19. Обновление контроля пользовательского интерфейса из ActionBlock
- 20. Модель View Presenter (MVP) Что такое модель?
- 21. MVP: как писать в журнал от Presenter
- 22. Android MVP: безопасное использование контекста в Presenter
- 23. Вопрос о дизайнере модели Presenter?
- 24. Лучший способ дождаться контроля пользовательского интерфейса?
- 25. Видимость контроля пользовательского интерфейса перед вызовом команды?
- 26. Когда модель обновления Presenter в MVP
- 27. GWT MVP: передать данные от представления к Presenter
- 28. MVP с точки зрения пользовательского интерфейса и вида
- 29. Проверка пользовательского контроля при запуске изменения размера
- 30. Проверка типа не выполняется для пользовательского контроля?
Я использую MVP в течение многих лет, но проверка TextBox находится в представлении. in Оставить событие Если TextBox1.Text = "", тогда BackColor = Color.Red EndIf .. или в кнопке Save, где вы проверяете все текстовые поля. – CristiC777
Лучший способ установить для свойства textbox.causevalidation значение true, затем выберите проверительный обработчик событий , В этом случае напишите свой подтверждающий код, и если textbox.text не соответствует условию, выберите e.cancel. В этом случае пользователь не может покинуть текстовое поле, пока не будет записано соответствующее значение . Поиск «Проверенного события» в справке VS. – CristiC777
@ CristiC777 Мне очень неприятно, если мне не разрешено оставлять текстовое поле, пока оно не будет действительным. Я хочу вернуться и исправить значение на моих собственных условиях. – jhyot