4
私はTextBox検証のためのWPF検証を使用しています。私はこのテンプレートを定義しました:フォーカスされていないときに表示されるWPF ErrorTemplate?
<Style x:Key="textBoxInError" TargetType="{x:Type TextBox}" BasedOn="{StaticResource StyleTextBox}">
<Style.Triggers>
<Trigger Property="Validation.HasError" Value="true">
<Setter Property="ToolTip"
Value="{Binding RelativeSource={x:Static RelativeSource.Self},
Path=(Validation.Errors)[0].ErrorContent}"/>
<Setter Property="Background" Value="{StaticResource TextBox_ErrorBackgroundBrush}"/>
<Setter Property="BorderBrush" Value="{StaticResource TextBox_ErrorBorderBrush}"/>
<Setter Property="BorderThickness" Value="2"/>
</Trigger>
</Style.Triggers>
<Setter Property="Validation.ErrorTemplate">
<Setter.Value>
<ControlTemplate>
<DockPanel>
<TextBlock DockPanel.Dock="Right" Foreground="Red" FontSize="20" Text="!"/>
<AdornedElementPlaceholder/>
</DockPanel>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
TextBoxは、TabItemのフォームにあります。 すべてうまくいきますが、 '!'他のTabItemを選択すると、TextBlockが表示されたままになります。この動作は、エキスパンドが展開されるなど、多くの場合に発生します.Exclamationは常にTextBoxが表示されませんが、同じ場所に表示されたままです。
です!いくつかのケースでは、WPFがスローし、レンダリングによって例外が発生します(コレクションにNULL値を追加できません)。私は、UserControlの中にTextBoxを持って、私はそれをキャッシュに保存し、私はキャッシュからインスタンスをリロードするときに発生します。 –