0

在我的Metadata班级中,有一个Person具有以下属性的班级:

Public Property Name As String

在我的实体模型中,此属性已Nullable设置为False. 我将Namenew绑定PersonTextBox我的 Silverlight 应用程序上的 a。当为空白时,框的边框变为红色,并且一条错误消息悬停在上面,上面写着“名称字段是必需的”。

我希望边框变红,但我不希望错误消息悬停。我怎样才能做到这一点?

我试过一个属性

<Required(allowemptystrings:=False, ErrorMessage:=Nothing)>

但消息仍然显示。

4

1 回答 1

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}" ... />
于 2013-03-24T09:38:20.377 回答