WPF IDataErrorInfo проверка нескольких полей - PullRequest
0 голосов
/ 03 декабря 2009

Какой хороший способ интеграции проверки нескольких полей с IDataErrorInfo?

Допустим, у меня есть диалоговое окно с 3 текстовыми полями для получения информации о ftp

  • URL
  • Имя пользователя
  • Пароль

Я поместил атрибут Обязательный в поля (предположим, что для пароля используется обычный текстовый блок).

Я проверяю соединение ftp, когда пользователь нажимает «ОК». В данный момент я показываю диалог, но было бы неплохо, если бы я мог активировать стиль ошибок проверки при ошибках подключения ftp.

Я посмотрел Validation.MarkInvalid, но не понимаю, как его использовать.

var be = GetBindingExpression(xamlURLField);
Validation.MarkInvalid(be, new ValidationError(-- WhatValidationRuleToPutHere --, be, "Can't connect to ftp", null)

1 Ответ

1 голос
/ 03 декабря 2009

Вы немного смешиваете здесь проблемы. Валидация предназначена для проверки ввода пользователя на базовом уровне. Выполнение некоторой последующей проверки должно выполняться по-другому и, как правило, является более сложным, чем вы хотели бы охватить в области «Проверка». Когда что-то подобное трудно, обычно есть причина, и это причина.

Я бы рассматривал попытку подключения как отдельный шаг во взаимодействии с пользователем и отображал сообщение вручную.

...