Как обрабатывать проверки на пользовательском контроле
Недавно я написал свой первый пользовательский элемент управления, текстовое поле автозаполнения. Его Controltemplate состоит из чего-то вроде этого
<Grid >
<Border/>
<TextBlock x:Name="Label"/>
<TextBox x:Name="TextLabel"/>
</Grid>
Первый текстовый блок используется в качестве метки, второй показывает содержимое. TextLabel привязывается к объекту, назовем его Customer. Если в результате поиска не найден объект Customer, я хочу показать шаблон ошибки. При определении TextLabel, как это
<TextBox x:Name="PART_Editor"
HorizontalAlignment="Stretch"
VerticalAlignment="Center"
Validation.ErrorTemplate="{DynamicResource ValidationErrorTemplate}"
Style="{StaticResource TransparentTextBoxStyle}"
Text="{Binding Path=Text, RelativeSource={RelativeSource Mode=TemplatedParent},
Mode=TwoWay, ValidatesOnNotifyDataErrors=True,
NotifyOnValidationError=True,
ValidatesOnDataErrors=True,
UpdateSourceTrigger=PropertyChanged}" >
</TextBox>
Проверка сделана, и шаблон ошибки текстового поля показан. К сожалению, красная граница только вокруг внутреннего TextBox, а не вокруг всего пользовательского элемента управления, который выглядит просто нехорошо.
Мне было интересно, как достичь двух вещей:
- Как вызвать ErrorTemplate CustomControl при сбое одной из дочерних проверок?
- Нужно ли указывать все эти свойства NotifyOnValidationerror или можно отлавливать все ошибки на уровне объекта и отображать один и тот же ErrorTemplate?
Если вам нужна дополнительная информация, пожалуйста, просто спросите