Проблема с сообщением об ошибке управления DataForm

Я разрабатываю веб-приложение Silverlight и застрял в текущей проблеме.

Можно ли сделать поле обязательным, только если значение вводится в другое поле. Например, если у вас есть форма данных для сохранения автомобилей. Требуется только модель автомобиля, за исключением того, что если вы выбираете тип автомобиля из раскрывающегося списка (внедорожник, компактный автомобиль, спортивный автомобиль), вам также необходимо ввести количество дверей.

Чтобы было ясно:

Имя (обязательно

Тип двигателя - не требуется

Шины - не требуются

Тип автомобиля - не требуется

Количество дверей - требуется, только если выбран тип автомобиля

Как я могу это сделать?

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


person Ivan Crojach Karačić    schedule 04.10.2011    source источник


Ответы (1)


То, что вам нужно сделать, называется проверкой на уровне объекта. Вместо проверки 1 свойства вам нужно проверить весь объект.

Для этого вам нужно реализовать INotifyDataErrorInfo. Чем на вашем объекте поддержки вам нужно будет обработать установщик свойств для CarType. Когда он изменится - вы получите ошибку для NumberOfDoors (если он не установлен). То же самое, если установлено NumberOfDoors - вам нужно будет вручную сбросить эту ошибку.

Здесь вы можете увидеть несколько хороших примеров того, как это делается: http://www.silverlight.net/learn/data-networking/validation/implementing-data-validation-in-silverlight-with-inotifydataerrorinfo

Кроме того, в качестве примечания: очень скоро вы максимально расширите возможности DataForm, если вам понадобятся более сложные сценарии.

person katit    schedule 04.10.2011