Duarnte in recenti Community Days, ho mostrato come in WPF sia possibile associare ad un binding delle regole di validazione in maniera dichiarativa:.

   1:  <TextBox Validation.ErrorTemplate="{StaticResource validationTemplate }">
   2:    <TextBox.Text>
   3:     <Binding Path="Name">
   4:      <Binding.ValidationRules>
   5:       <ExceptionValidationRule />
   6:      </Binding.ValidationRules>
   7:     </Binding>
   8:    </TextBox.Text>
   9:  </TextBox>

In questo caso, in presenza di un eccezione durante l'impostazione della proprietà Name associata alla textbox, alla textbox stessa viene applicato un ErrorTemplate che, by default, "adorna" la textbox con un rettangolo rosso.
Ovviamente il template è modificabile: l'esempio sopra indicato fa riferimento ad una risorsa "validationTemplate" che permette di ottenere un effetto simile al ErrorProvider dei windows forms. La dichiarazione di validationTemplate è quella che segue:

   1:  <ControlTemplate x:Key="validationTemplate">
   2:       <StackPanel Orientation="Horizontal">
   3:        <Grid Width="20" Height="20" Margin="0,0,20,0"
   4:             ToolTip="{Binding ElementName=source,Path=AdornedElement.(Validation.Errors)[0].ErrorContent}">
   5:          <Ellipse Fill="#FFFF0000" Stroke="#FF000000"/>
   6:          <TextBlock Text="!" TextWrapping="Wrap" 
   7:                 HorizontalAlignment="Center" VerticalAlignment="Center" 
   8:                  FontSize="14" FontWeight="Bold" Foreground="#FFFBFBFB"/>
   9:        </Grid>
  10:        <AdornedElementPlaceholder x:Name="source"/>
  11:       </StackPanel>
  12:      </ControlTemplate>

Il risultato finale è il seguente:

image