У меня есть пользовательский контроль SL4. Он содержит DatePicker. Элемент управления предоставляет свойство зависимостей DateTime (не является нулевым, поскольку это обязательное поле). Я связал SelectedDate из DatePicker (который является Nullable <DateTime>) для этого свойства DateTime {RelativeSource Self}, как двухсторонний. Эта привязка работает, за исключением случаев, когда я вводил нулевую дату в DatePicker. Связывание настраивается с помощью ValidatesOnExceptions, поэтому граница DatePicker становится красной, но в подсказке указано, что «вход не в правильном формате». Но он должен сказать, что поле требуется.SilverLight требуется проверка даты на печать
Я попробовал пользовательский IValueConverter, который выбрал исключение (ValidationException, FormatException, InvalidOperationException и т. Д.) С помощью специального текста, но все они оказались необработанными.
Я знаю, что мой элемент управления может реализовать INotifyDataErrorInfo, но проблема в том, что нулевое значение даже не вносит мне в мой контроль, так как мой DateTime не имеет значения NULL, поэтому проверить нечего.
Я мог бы легко сделать это без каких-либо привязок. Или путем привязки к скрытому объекту Nullable <DateTime> в моем элементе управления, подтверждающем, что это свойство не равно null и выставляет другое свойство DateTime. Или путем предоставления ValueConverter, который преобразует значение null в DateTime.MinValue или что-то в этом роде.
Но все эти методы кажутся обходными способами, и мне бы хотелось получить лучшее решение. Каков наилучший способ справиться с этим?