Validation De Liaison.HasError propriété dans MVVM

Je suis actuellement à la mise en œuvre d'un ValidationRule de vérifier si des caractères non valides sont dans une zone de texte. Je suis heureux que la définition de la classe I ont mis en œuvre qui hérite ValidationRule sur ma zone de texte met en rouge lorsque ces caractères sont trouvé, mais je tiens également à utiliser la Validation.HasError de la propriété ou de la Validation.Les erreurs de la propriété de la pop une boîte de message indiquant à l'utilisateur qu'il y a des erreurs dans les différentes zones de texte dans la page.

Est-il un moyen de lier une propriété dans mon ViewModel à la Validation.HasError et/ou à la Validation.Les erreurs de propriétés dans l'ordre pour moi d'avoir accès à eux dans mon ViewModel?

Ici, c'est mon style d'erreur pour la zone de texte:

<Style x:Key="ErrorValidationTextBox" TargetType="{x:Type pres:OneTextBox}">
    <Setter Property="Validation.ErrorTemplate">
        <Setter.Value>
            <ControlTemplate>
                <DockPanel LastChildFill="True">
                    <TextBlock DockPanel.Dock="Right"
                    Foreground="Red"
                    FontSize="12pt"
                    Text="{Binding ElementName=MyAdorner, 
                           Path=AdornedElement.(Validation.Errors)[0].ErrorContent}">
                    </TextBlock>
                    <AdornedElementPlaceholder x:Name="MyAdorner"/>
                </DockPanel>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

Ici est de savoir comment je déclarer mes TextBox (OneTextBox encapsule la régulière WPF zone de texte) dans mon code XAML:

<pres:OneTextBox Watermark="Name..." Margin="85,12,0,0" Style="{StaticResource ErrorValidationTextBox}"
                 AcceptsReturn="False" MaxLines="1" Height="22" VerticalAlignment="Top"
                 HorizontalAlignment="Left" Width="300" >
    <pres:OneTextBox.Text>
        <Binding Path="InterfaceSpecification.Name" UpdateSourceTrigger="PropertyChanged">                    
            <Binding.ValidationRules>                       
                <interfaceSpecsModule:NoInvalidCharsRule/>                        
            </Binding.ValidationRules>                    
        </Binding>               
    </pres:OneTextBox.Text>        
</pres:OneTextBox>
Juste par curiosité: Êtes-vous intentionnellement diffusion de votre logique de validation à travers la vue ET viewmodel?
Oui, comme avec ma règle de validation, la seule chose qui se passe c'est que la frontière de ma zone de texte devient rouge. Il n'empêche pas l'utilisateur à partir de la saisie d'autres personnages (même si, quand il y a un caractère non valide le Nom de la propriété cesse d'être mis à jour) ou qu'il n'a pas empêché de créer un InterfaceSpecification avec ce nom. J'ai pu lier la Validation.HasError sur le bouton "soumettre" de ma forme, mais je suis en utilisant un cadre personnalisé et n'ont pas accès à ce bouton (comme c'est privé, à l'intérieur de la forme de contrôle, malheureusement).

OriginalL'auteur Choub890 | 2014-04-03