这个问题的分支-
像这样将验证错误模板附加到我的自定义文本框时 -
<local:CustomTextBox CustomText="{Binding ViewModelProperty}" Validation.ErrorTemplate="{StaticResource errorTemplate}"/>
<ControlTemplate x:Key="errorTemplate">
<DockPanel>
<Border BorderBrush="Red" BorderThickness="1">
<AdornedElementPlaceholder x:Name="controlWithError"/>
</Border>
<TextBlock Foreground="Red" FontSize="20" FontFamily="Segoe UI" Margin="3,0,0,0" MouseDown="Exclamation_MouseDown" Tag="{Binding AdornedElement.(Validation.Errors)[0].ErrorContent, ElementName=controlWithError}">!</TextBlock>
</DockPanel>
</ControlTemplate>
如果 ViewModelProperty 中存在验证错误,我的应用程序会抛出异常 -
Key cannot be null.
Parameter name: key
我不确定为什么会这样。是否需要做一些事情才能将新的错误模板分配给自定义控件?
更新:
我发现问题出在错误模板中的 Tag 属性上。如果我删除标签,它工作得很好。
谢谢