0

MetadataのクラスにはPerson、次のプロパティを持つクラスがあります。

Public Property Name As String

私のエンティティ モデルでは、このプロパティは にNullable設定されていFalseます。Name新しいPersonTextBoxSilverlight アプリのにバインドします。空白の場合、ボックスの境界線が赤くなり、「名前フィールドが必要です」というエラー メッセージが表示されます。

境界線を赤くしたいのですが、エラー メッセージを表示したくありません。どうすればこれを達成できますか?

の属性を試しました

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

しかし、メッセージはまだ表示されます。

4

1 に答える 1

0

検証状態が正しいタイミングで表示されるが、検証メッセージを表示したくない場合は、テキスト ボックスのコントロール テンプレートを変更する必要があります。

デフォルトでは、TextBox コントロール テンプレートには ValidationErrorElement という名前の Border があります。そのボーダーには、エラー メッセージを示すツールチップがあります。ツールチップを削除するだけです。

<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 に答える