1
我有驗證的文本框和組合框。當盒子爲空時,如啓動時,我想顯示一個特定的樣式,當有一個無效的值和不同的樣式時。從技術上講,空框是一個錯誤,因爲我需要禁用按鈕,直到框中包含有效的值。WPF爲空文本框和驗證錯誤分開的樣式
有沒有一種方法可以根據驗證錯誤設置不同的樣式,或者我需要使空值不是錯誤,並通過簡單的驗證來控制按鈕,看看其餘的控件是否有效?
我目前使用這種風格的所有錯誤,包括空值。
<Style x:Key="Error" TargetType="{x:Type Control}">
<Setter Property="VerticalAlignment" Value="Center" />
<Setter Property="Margin" Value="0,2,40,2" />
<Setter Property="Validation.ErrorTemplate">
<Setter.Value>
<ControlTemplate>
<DockPanel LastChildFill="true">
<Border Background="Red" DockPanel.Dock="left" Margin="5,0,0,0"
Width="20" Height="20" CornerRadius="10"
ToolTip="{Binding ElementName=customAdorner,
Path=AdornedElement.(Validation.Errors)[0].ErrorContent}">
<TextBlock Text="X" VerticalAlignment="center" HorizontalAlignment="center" Foreground="white" />
</Border>
<AdornedElementPlaceholder Name="customAdorner" VerticalAlignment="Center" >
<Border/>
</AdornedElementPlaceholder>
</DockPanel>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
這會讓我的解決方案。我正在使用IDataErrorInfo來報告驗證錯誤,所以我無法按照建議返回對象。我最終在樣式中使用了單個裝飾元素,並根據錯誤消息編寫了轉換器來更改元素的外觀。它不是一個很好的解決方案,但它適用於我的需求。 – TurboGus