2010-05-16 5 views
6

Ai-je raté quelque chose?Validation.HasError, propriété attachée

1- style

<Style TargetType="{x:Type TextBox}"> 
     <Style.Triggers> 
      <DataTrigger Binding="{Binding Path=Validation.HasError}" Value="true"> 
       <Setter Property="BorderBrush" Value="Blue" /> 
      </DataTrigger> 
     </Style.Triggers> 
     <Setter Property="MinWidth" Value="160" /> 
     <Setter Property="Margin" Value="0 7 0 0"/> 
    </Style> 

2 - viewmodel mettre en œuvre IDataErrorInfo 3- textBox en vue

<TextBox x:Name="FirstName" Text="{Binding Person.FirstName, UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=true}"></TextBox> 

3 - J'utilise Caliburn MVVM

je suis arrivé "erreur de chemin de BindingExpression: ' La propriété 'Validation' est introuvable sur 'objet' 'PersonWindowViewModel' (HashCode = 38783181) '. BindingExpression: Path = Validation.HasError; DataItem =' PersonWindowViewMode l '(HashCode = 38783181); l'élément cible est 'TextBox' (Name = 'FirstName'); cible propriété est 'notarget' (type 'objet') "S

Répondre

14

Découvrez Beth l'article Massi sur la mise en œuvre validation here

Fondamentalement, vous avez utilisé un DataTrigger où vous avez juste besoin d'un Trigger

Alors :

<Style.Triggers> 
    <Trigger Property="Validation.HasError" Value="true"> 
     <Setter ... /> 
    </Trigger> 
</Style.Triggers> 
+6

Je ne peux pas vous dire combien de fois sanglante, je dois revenir ici – Will

+2

@Will - lol I * love * WPF, mais je pense vraiment que certaines d'entre elles pourrait être un peu plus simple :).. – kiwipom

Questions connexes