2016-08-22 14 views
0

私は非常に簡単なことを達成しようとしていますが、私は非常に小さな問題を抱えています。私はユーザーがタイプを入力する必要があるTextBoxを持っています。タイプは '1'または 'a'でなければなりません。私が思いついたのは、ユーザーがこれらの値以外を入力したときにBorderBrushを赤に変更することでした。最初の文字のTextBox DataTriggerを更新できません

これはうまくいくようですが、色を赤に変えるには2文字を入力する必要があります... dを押すと灰色になり、ddを押すと赤くなります。それは最初の手紙に赤くなる方法がありますか?

<TextBox Grid.Row="2" Grid.Column="1" Text="{Binding SelectedShippingRate.Type, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" Margin="4" > 
    <TextBox.Style> 
     <Style TargetType="TextBox"> 
      <Setter Property="BorderBrush" Value="Red" /> 
      <Style.Triggers> 
       <DataTrigger Binding="{Binding SelectedShippingRate.Type, UpdateSourceTrigger=PropertyChanged}" Value="1"> 
        <Setter Property="BorderBrush" Value="Gray" /> 
       </DataTrigger> 
       <DataTrigger Binding="{Binding SelectedShippingRate.Type, UpdateSourceTrigger=PropertyChanged}" Value="a"> 
        <Setter Property="BorderBrush" Value="Gray" /> 
       </DataTrigger> 
      </Style.Triggers> 
     </Style> 
    </TextBox.Style> 
</TextBox> 
+0

Isタイプの文字列またはインスタンスを入力しますか? –

+0

タイプは文字列です – kostas

+0

ビューモデルで、このプロパティのINotifyPropertyChangedおよびsetterがOnPropertyChanged()を実装していますか? –

答えて

0

ありがとうございました。それは既に働いているようだが、BorderBrushは常に青色になるだろう。.....焦点を合わせると、テキストボックスの境界線は常に青色(ish)なので、D。だから私はちょうどその周りに境界線を追加し、国境にトリガを追加しました。

関連する問題