2009-06-19 6 views
5

Ich möchte, dass meine TextBox einen roten Hintergrund hat wenn die ViewModel -Eigenschaft = "ungültig". Was muss ich ändern, damit das funktioniert?Wie kann ich diesen DataTrigger zum Laufen bringen?

Diese Version sagt mir, dass Hintergrund hat keinen qualifizierenden Typ Name.

<TextBox 
    Width="200" 
    Text="{Binding FieldEmail, UpdateSourceTrigger=PropertyChanged}"> 
    <TextBox.Triggers> 
     <DataTrigger Binding="{Binding FieldEmailValidationStatus}" Value="invalid"> 
      <Setter Property="TextBox.Background" Value="Tomato"/> 
     </DataTrigger> 
    </TextBox.Triggers> 
</TextBox> 

Wenn ich "TextBox." es sagt mir, ich einen Eventtrigger haben, haben:

<TextBox 
    Width="200" 
    Text="{Binding FieldEmail, UpdateSourceTrigger=PropertyChanged}"> 
    <TextBox.Triggers> 
     <DataTrigger Binding="{Binding FieldEmailValidationStatus}" Value="invalid"> 
      <Setter Property="Background" Value="Tomato"/> 
     </DataTrigger> 
    </TextBox.Triggers> 
</TextBox> 

Antwort

10

Erlauben Sie mir, diese zu beantworten, hatte ich vergessen, das alles in einem Stil zu wickeln, dann funktioniert es schön:

<TextBox 
    Width="200" 
    Text="{Binding FieldEmail, UpdateSourceTrigger=PropertyChanged}"> 
    <TextBox.Style> 
     <Style> 
      <Style.Triggers> 
       <DataTrigger Binding="{Binding FieldEmailValidationStatus}" Value="invalid"> 
        <Setter Property="TextBox.Background" Value="Tomato"/> 
       </DataTrigger> 
      </Style.Triggers> 
     </Style> 
    </TextBox.Style> 
</TextBox> 

oder dies:

<Style x:Key="FieldEmailStyle" TargetType="TextBox"> 
    <Style.Triggers> 
     <DataTrigger Binding="{Binding FieldEmailValidationStatus}" Value="invalid"> 
      <Setter Property="TextBox.Background" Value="Yellow"/> 
     </DataTrigger> 
     <DataTrigger Binding="{Binding FieldEmailValidationStatus}" Value="valid"> 
      <Setter Property="TextBox.Background" Value="LightGreen"/> 
     </DataTrigger> 
    </Style.Triggers> 
</Style> 

    <TextBox 
     Width="200" 
     Style="{StaticResource FieldEmailStyle}" 
     Text="{Binding FieldEmail, UpdateSourceTrigger=PropertyChanged}"> 
    </TextBox> 
Verwandte Themen