我想要實現使用IDataErrorInfo
界面我的WPF應用程序的驗證,我已經遇到了一個不那麼理想的情況。錯誤模板上面其他控件顯示,當它應該被隱藏
我有這個模板,用於當控件無法驗證
<ControlTemplate x:Key="errorTemplate">
<DockPanel LastChildFill="true">
<Border Background="Red" DockPanel.Dock="Right" Margin="5,0,0,0" Width="20" Height="20" CornerRadius="10"
ToolTip="{Binding ElementName=customAdorner, Path=AdornedElement.(Validation.Errors)[0].ErrorContent}">
<TextBlock Text="!" VerticalAlignment="Center" HorizontalAlignment="Center" FontWeight="Bold" Foreground="White" />
</Border>
<AdornedElementPlaceholder Name="customAdorner" VerticalAlignment="Center" >
<Border BorderBrush="red" BorderThickness="1" />
</AdornedElementPlaceholder>
</DockPanel>
</ControlTemplate>
一切都順利,直到我試圖顯示一些驗證失敗,如顯示它上面的碼頭項目的控制上面:
我如何避免這種情況,並顯示在Dock項目我下面的錯誤模板,因爲它應該?
編輯
我發現我可以總結我TextBox
與AdornerDecorator
來解決這個問題,但我真的不想爲每個和我的應用程序的每個TextBox
控制做到這一點。有沒有辦法用Style
或其他方式設置它?
EDIT 2
我大概可以更改默認TextBox
控件模板,包括一個AdornerDecorator
,但我不改變任何的WPF的默認控件模板過於激烈。歡迎任何其他建議。
我不看看這是如何解決任何事情。邊框仍顯示在碼頭項目上方。 – 2012-04-24 10:18:49