最近、最初のカスタム コントロールであるオートコンプリート テキスト ボックスを作成しました。その Controltemplate は次のようなもので構成されています
<Grid >
<Border/>
<TextBlock x:Name="Label"/>
<TextBox x:Name="TextLabel"/>
</Grid>
最初の Textblock はラベルとして使用され、2 番目の Textblock はコンテンツを表示します。TextLabel は Object にバインドします。これを 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 の周りにのみあり、カスタム コントロール全体の周りにはありません。
私は2つのことを達成する方法を考えていました:
- 子検証の 1 つが失敗したときに、CustomControl の ErrorTemplate をトリガーするにはどうすればよいですか?
- これらすべての NotifyOnValidationerror プロパティを指定する必要がありますか、またはエンティティ レベルですべてのエラーをキャッチして同じ ErrorTemplate を表示することは可能ですか?
追加情報が必要な場合は、お問い合わせください