隐藏验证错误

时间:2013-03-23 16:28:21

标签: .net silverlight validation wcf-ria-services ria

在我的Metadata课程中,有一个课程Person,其中包含以下属性:

Public Property Name As String

在我的实体模型中,此属性的Nullable设置为False。我将新Name的{​​{1}}绑定到我的Silverlight应用上的Person。如果为空白,则框的边框变为红色,并显示错误消息,说明“名称字段是必需的”。

我希望边框变红,但我不希望错误信息悬停。我该如何实现?

我尝试了

的属性

TextBox

但消息仍然显示。

1 个答案:

答案 0 :(得分:0)

如果验证状态显示在正确的时间,但您不想显示验证消息,则必须修改文本框的控件模板。

默认情况下,TextBox控件模板有一个名为ValidationErrorElement的边框。该边框有一个显示错误消息的工具提示。您只需要删除工具提示。

<ControlTemplate TargetType="TextBox" x:Name="customTextBox">
    <Grid x:Name="RootElement">
        <VisualStateManager.VisualStateGroups>
            ...
        </VisualStateManager.VisualStateGroups>
        ...
        <Border x:Name="ValidationErrorElement" BorderThickness="1" CornerRadius="1" BorderBrush="#FFDB000C" Visibility="Collapsed"> 
            <!-- Remove the tooltip here -->

            <!-- 
            <ToolTipService.ToolTip>
                <ToolTip x:Name="validationTooltip" ...
                </ToolTip>
            </ToolTipService.ToolTip>
            -->

            <Grid Width="12" Height="12" HorizontalAlignment="Right" Margin="1,-4,-4,0" VerticalAlignment="Top" Background="Transparent">
                <Path Margin="1,3,0,0" Data="M 1,0 L6,0 A 2,2 90 0 1 8,2 L8,7 z" Fill="#FFDC000C"/>
                <Path Margin="1,3,0,0" Data="M 0,0 L2,0 L 8,6 L8,8" Fill="#ffffff"/>
            </Grid>
        </Border>
    </Grid>
</ControlTemplate>

然后将模板应用于TextBox

<TextBox Template="{StaticResource customTextBox}" ... />