Hello,
I get no binding errors and this code works at another place. I haven`t found out yet what I do now differently to the code where it works and its not that much code.
In UserControl.Resource:
<Style TargetType="TextBox">
    <Setter Property="BorderBrush"  Value="DarkBlue"/>
    <Setter Property="BorderThickness" Value="1" />
    <Setter Property="Margin" Value="0,1,0,1" />
    <Setter Property="Validation.ErrorTemplate">
        <Setter.Value>
            <ControlTemplate>
                <StackPanel Orientation="Horizontal">
                    <AdornedElementPlaceholder />
                    <Grid Margin="2,0,0,0">
                        <Ellipse Width="20" Height="20" Fill="Red"/>
                        <TextBlock Foreground="White" Text="X" FontWeight="Bold" HorizontalAlignment="Center" VerticalAlignment="Center"/>
                    </Grid>
                </StackPanel>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
    <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>
Below in Xaml too:
    <TextBlock Height="23" HorizontalAlignment="Left" Margin="22,90,0,0"  Text="Keywords" VerticalAlignment="Top" />
    <TextBox  Height="23" HorizontalAlignment="Left" Margin="22,108,0,0"  VerticalAlignment="Top" Width="244">
        <Binding Path="Tags" Mode="TwoWay" UpdateSourceTrigger="PropertyChanged">
            <Binding.ValidationRules>
                <DataErrorValidationRule ValidatesOnTargetUpdated="False"/>
            </Binding.ValidationRules>
        </Binding>
    </TextBox>
The button SAVE in my ViewModel is only activated when the Model.Tags property is longer 10 chars input from the user. The button activation/disable works fine when I enter 10,11 and then back 8 chars. All the property changes are fired.
Model:
namespace TBM.Model
{
    public class Document : EntityBase , IDataErrorInfo
    {
        public int Id { get; set; }
        public string DocumentName { get; set; }
        public string Tags { get; set; }
        public byte[] DocumentData { get; set; }
        public int PeriodId { get; set; }
        string IDataErrorInfo.Error { get { return null; } }
        string IDataErrorInfo.this[string propertyName]
        {
            get { return this.GetValidationError(propertyName); }
        }
        public bool IsValid
        {
            get
            {
                foreach (string property in ValidatedProperties)
                    if (GetValidationError(property) != null)
                        return false;
                return true;
            }
        }
        static readonly string[] ValidatedProperties =   {  "Tags", };
        private string GetValidationError(string propertyName)
        {
            if (Array.IndexOf(ValidatedProperties, propertyName) < 0)
                return null;
            string error = null;
            switch (propertyName)
            {               
                case "Tags": error = this.IsTagsEmpty(Tags); break;
                default:
                    Debug.Fail("Unexpected property being validated on Document: " + propertyName);
                    break;
            }
            return error;
        }  
        private string IsTagsEmpty(string value)
        {
            if (value != null && value.Trim().Length >= 10)
                return null;
            else
               return "The keywords must have at least 10 chars!";            
        }
    }
}
ViewModel:
 public RelayCommand SaveDocumentCommand
        {
            get { return _saveDocumentCommand ?? (_saveDocumentCommand = new RelayCommand(() => SaveDocument(),() => CanSaveDocument())); }
        }
        private bool CanSaveDocument()
        {
            return _document.IsValid;
        }
...
What does not work is the ErrorTemplate with the red Ellipse is not showing at all?
UPDATE: Exactly the below code works in a TEST project. But in my productive project It does not find the Resource??? Why the heck this?
<TextBlock Height="23" HorizontalAlignment="Left" Margin="22,89,0,0"  Text="Keywords" VerticalAlignment="Top" />
        <TextBox Style="{StaticResource bla}" Height="23" HorizontalAlignment="Left" Margin="22,109,0,0"  VerticalAlignment="Top" Width="244">
            <Binding Path="Tags" Mode="TwoWay" UpdateSourceTrigger="PropertyChanged">
                <Binding.ValidationRules>
                    <DataErrorValidationRule ValidatesOnTargetUpdated="False"  ValidationStep="UpdatedValue"  />
                </Binding.ValidationRules>
            </Binding>
        </TextBox>
<UserControl.Resources>
         <Style x:Name="bla" TargetType="TextBox">
            <Setter Property="BorderBrush"  Value="DarkBlue"/>
            <Setter Property="BorderThickness" Value="1" />
            <Setter Property="Margin" Value="0,1,0,1" />
            <Setter Property="Validation.ErrorTemplate">
                <Setter.Value>
                    <ControlTemplate>
                        <StackPanel Orientation="Horizontal">                          
                            <AdornedElementPlaceholder />
                            <Grid Margin="2,0,0,0">
                                <Ellipse Width="20" Height="20" Fill="Red"/>
                                <TextBlock Foreground="White" Text="X" FontWeight="Bold" HorizontalAlignment="Center" VerticalAlignment="Center"/>
                            </Grid>
                        </StackPanel>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
            <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>       
    </UserControl.Resources>