4
我正在使用WPF驗證的TextBox驗證。我已經定義了這個模板:未聚焦時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保持可見。在許多其他情況下會出現這種行爲 - 當擴展器展開等等時,Excklamation始終在相同的位置保持可見,儘管TextBox沒有被顯示。
這有一個問題!在某些情況下,WPF通過渲染引發異常(無法將值添加到集合中)。它發生在UserControl內部的TextBox並將其保存在緩存中時,並且我從緩存中重新加載實例。 – 2010-07-01 07:43:52