2013-03-23 7 views
0

는 다음과 같은 속성 클래스 Person있다. 내 NamePerson을 Silverlight 앱의 TextBox에 바인딩합니다. 빈칸으로 표시되면 상자 테두리가 빨간색으로 변하며 "이름 필드가 필요합니다"라는 오류 메시지가 표시됩니다.숨기기 유효성 검사 오류 내 <code>Metadata</code> 클래스에서

경계가 빨간색으로 바뀌길 원하지만 오류 메시지가 나타나기를 원하지 않습니다. 어떻게해야합니까?

나는

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

의 속성을 시도했다 그러나 메시지가 여전히 표시됩니다.

답변

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 Template="{StaticResource customTextBox}" ... />