2

我最近编写了我的第一个自定义控件,一个自动完成文本框。它的 Controltemplate 由这样的东西组成

<Grid >
  <Border/>
  <TextBlock x:Name="Label"/>
  <TextBox x:Name="TextLabel"/>
</Grid>

第一个文本块用作标签,第二个显示内容。TextLabel 绑定在一个对象上,我们称它为客户 如果底层搜索没有找到客户对象,我想显示错误模板。像这样定义 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 周围,而不是在看起来不太好的整个自定义控件周围。

我想知道如何实现两件事:

  • 当其中一个子验证失败时,如何触发 CustomControl 的 ErrorTemplate?
  • 我是否必须指定所有这些 NotifyOnValidationerror 属性,或者是否可以在实体级别捕获所有错误并显示相同的 ErrorTemplate

如果您需要更多信息,请询问

4

0 回答 0