我将float?
属性绑定到WPF应用程序中的TextBox
。我也有ValidatesOnDataErrors
。
当我输入无效的非数字值时,TextBox
的边框会变成不同的颜色,因为它无法将值转换为float
。因此该值绑定到null
。
我的问题是 - 如何阻止它绑定到null
?我真的想给出一个错误,例如“请仅输入数值”。谢谢。
答案 0 :(得分:0)
样式是数据输入验证的最佳方法。您需要做的就是将此样式复制到Window或UserControl 注意:我使用工具提示,但您可以使用自己的方法向用户显示通知:
<Window.Resources>
<Style TargetType="{x:Type TextBox}">
<Style.Triggers>
<Trigger Property="Validation.HasError" Value="true">
<Setter Property="Background" Value="Pink"/>
<Setter Property="Foreground" Value="Black"/>
</Trigger>
</Style.Triggers>
<Setter Property="Validation.ErrorTemplate">
<Setter.Value>
<ControlTemplate>
<Grid>
<Polygon Points="9,9 9,0 0,0" Stroke="Red" StrokeThickness="1" Fill="Red" HorizontalAlignment="Right" VerticalAlignment="Top"
ToolTip="Please enter numeric values only"/>
<AdornedElementPlaceholder x:Name="valAdorner" VerticalAlignment="Center">
<Border BorderBrush="red" BorderThickness="1" />
</AdornedElementPlaceholder>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Window.Resources>