2010-05-16 12 views
6

¿Echo de menos algo?Validation.HasError propiedad adjunta

1- Estilo

<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 aplicar IDataErrorInfo 3- cuadro de texto en vista

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

3 - utilizo Caliburn MVVM

llegué "error de ruta BindingExpression: ' La propiedad 'Validación' no se encuentra en 'object' '' PersonWindowViewModel '(HashCode = 38783181)'. BindingExpression: Path = Validation.HasError; DataItem = 'PersonWindowViewMode l '(HashCode = 38783181); el elemento de destino es 'TextBox' (Name = 'FirstName'); apuntar propiedad es 'notarget' (tipo 'Objeto') "S

Respuesta

14

Salida artículo de Beth Massi en la implementación de la validación here

Básicamente, se ha usado un DataTrigger en el que sólo necesita un Trigger

Así :

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

no te puedo decir cuántas veces sangrienta tengo que volver aquí – Will

+2

@Will - lol I * amor * WPF, pero realmente creo que algunos de que podría ser un poco más simple :).. – kiwipom

Cuestiones relacionadas