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