この質問から分岐する-
このようにカスタムテキストボックスに検証エラーテンプレートを添付すると-
<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 プロパティに問題があることがわかりました。タグを削除すると、問題なく動作します。
ありがとう