2010-07-29 1 views
11

다음 컨트롤이 오류 텍스트를 포함하도록 툴팁을 설정하는 것과 비슷한 컨트롤 아래의 TextBlock에 오류 내용을 표시하는 방법이 있습니까?WPF 컨트롤 아래에 유효성 검사 오류 메시지가있는 TextBlock 표시

 <Style x:Key="textBoxInError" TargetType="Control"> 
     <Setter Property="Validation.ErrorTemplate"> 
      <Setter.Value> 
       <ControlTemplate> 
        <DockPanel> 
         <TextBlock DockPanel.Dock="Left" Foreground="Red" FontWeight="Bold">*</TextBlock> 
         <TextBlock Text="WOULD LIKE TO SHOW WHAT TOOLTIP IS SHOWING" DockPanel.Dock="Bottom" Foreground="Red"/> 
         <Border BorderBrush="Red" BorderThickness="2"> 
          <AdornedElementPlaceholder/> 
         </Border> 
        </DockPanel> 
       </ControlTemplate> 
      </Setter.Value> 
     </Setter> 
     <Style.Triggers> 
      <Trigger Property="Validation.HasError" Value="True"> 
       <Setter Property="ToolTip" 
         Value="{Binding RelativeSource={x:Static RelativeSource.Self}, 
        Path=(Validation.Errors)[0].ErrorContent}"/> 
      </Trigger> 
     </Style.Triggers> 
    </Style> 

즉, 도구 설명 대신 컨트롤 아래의 TextBlock에 오류 메시지가 표시됩니다.

+0

나는이와로 실행했습니다 문제는 그 오류 메시지 텍스트 블록이 그 아래에있는 다른 컨트롤 위에 렌더링됩니다. 그것은 공간을 만들기 위해 모든 것을 부딪히지 않습니다. adorner 레이어에 표시되는 오류 템플릿과 관련이 있습니다 ... 아직 설명하지 못했습니다. – statikuz

답변

18

당신이 단지 수 있도록 ErrorTemplate의 DataContext를가 이미 Validation.Errors의 값입니다 :

<TextBlock Text="{Binding [0].ErrorContent}" DockPanel.Dock="Bottom" Foreground="Red"/> 

또는

<TextBlock Text="{Binding ErrorContent}" DockPanel.Dock="Bottom" Foreground="Red"/>