2010-06-23 26 views
6

Me gustaría crear una plantilla de validador personalizada para mi aplicación WPF.WPF validador personalizado con información sobre herramientas

que tienen una plantilla de información sobre herramientas:

<ControlTemplate x:Key="ToolTipTemplate" TargetType="ToolTip"> 
     <Grid Opacity="0.93" MaxWidth="200"> 
      <Border BorderBrush="Black" BorderThickness="1,1,1,1" CornerRadius="2"> 
       <Border.Background> 
        <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"> 
         <GradientStop Color="#FFF5FAFE" Offset="0"/> 
         <GradientStop Color="#FFE5EFF9" Offset="1"/> 
        </LinearGradientBrush> 
       </Border.Background> 
       <Border.Effect> 
        <DropShadowEffect Color="#FF393939" /> 
       </Border.Effect> 
       <TextBlock Margin="10,10,10,10" 
        VerticalAlignment="Top" 
        TextWrapping="Wrap" 
        HorizontalAlignment="Left" 
        Text="{TemplateBinding Content}"> 
       </TextBlock> 
      </Border> 
     </Grid> 
    </ControlTemplate> 

Otra plantilla para la validación:

<ControlTemplate x:Key="GlobalErrorTemplate"> 
     <DockPanel> 
      <Ellipse x:Name="PART_icon" 
       DockPanel.Dock="Right" 
       Margin="2,0" 
       Width="10" Height="10"> 
       <Ellipse.Fill> 
        <LinearGradientBrush> 
         <GradientStop Color="#11FF1111" Offset="0" /> 
         <GradientStop Color="#FFFF0000" Offset="1" /> 
        </LinearGradientBrush> 
       </Ellipse.Fill> 
       <Ellipse.ToolTip> 
        <ToolTip Template="{StaticResource ToolTipTemplate}" />       
       </Ellipse.ToolTip> 
      </Ellipse> 
      <AdornedElementPlaceholder x:Name="adorner" /> 
     </DockPanel> 
    </ControlTemplate> 

Y los estilos para los controles, por ejemplo:

<Style TargetType="TextBox"> 
     <Setter Property="Validation.ErrorTemplate" Value="{StaticResource GlobalErrorTemplate}"/> 
     <!--<Style.Triggers> 
      <Trigger Property="Validation.HasError" Value="True"> 
       <Setter Property="ToolTip" Value="{Binding RelativeSource={RelativeSource Self}, Path=(Validation.Errors)[0].ErrorContent}" /> 
      </Trigger> 
     </Style.Triggers>--> 
    </Style> 

¿Cómo puedo configurar la información sobre herramientas de la Elipse a (Validation.Errors) [0] .ErrorContent?

Gracias, Mart

Respuesta

7

El DataContext de la ErrorTemplate ya es el valor de Validation.Errors, por lo que sólo puede definir su información sobre herramientas como:

<ToolTip Template="{StaticResource ToolTipTemplate}" Content="{Binding Path=[0].ErrorContent}" /> 
Cuestiones relacionadas