Здравствуйте и спасибо за помощь.
У меня проблема с побочным эффектом в поведении, которое я добавил в один из своих элементов UserControl. У меня есть UserControl, который загружает некоторые данные в ComboBox на основе свойства зависимости. Это прекрасно работает, но недавно меня попросили сделать опцию, что если есть только один элемент для его автоматического выбора.
Я обрабатываю заполнение элементов, как только элемент управления вызывает событие Loaded, а затем задаю SelectedItemесли необходимо.
UserControl имеет свойство зависимостей SelectedItem, с которым я связываю свойство с NotifyOnDataError со значением true.
Свойство, когда оно модифицировано, вызывает PropertyChanged и ErrorsChanged с ожидаемым поведением из HasErrors иGetErrors (string).
В некоторых случаях средство регистрации ошибок по-прежнему остается несоответствующим, что в свойстве нет ошибки, а всплывающая подсказка, показывающая ошибку, пуста. Когда возникает эта проблема, я должен очистить SelectItem, установив свойство по ошибке, в результате чего обработчик ошибок останется таким, каким он должен быть в этот раз, но во всплывающей подсказке не будет отображаться ошибка, где он должен быть в этот раз, а затем выберите элемент из поля со списком. ,Тогда валидация элемента управления ведет себя как ожидалось.
Я сказал в некоторых обстоятельствах, потому что, если AdornerDecorator находится между родительским ContentControl (Window, GroupBox ...) и UserControl, шаблон ошибки ведет себя как ожидалось. Наличие AdornerDecorator в шаблоне ContentControl не решает проблему.
Я развернул github repo , где я повторил проблему.
Вот мои ViewModelsреализации.
А вот моя реализация UserControl.
Я ищу то, что я делаю неправильно, или, по крайней мере, способ заставить это работатьпостоянно без необходимости добавлять AdornerDecorator везде.