2011-06-26 14 views
1

フィールドにヘルパーテキストを表示するようにこのコードをスクリプトに盛り込んだり(ユーザーがフィールドを入力する前にヘルパーテキストを表示します。トリガは、まあ、トリガされていません。このコードで何が問題になっていますか?WPFでDatatriggerが動作していないVisualBrush

XAML:

<TextBox x:Name="firstName" Validation.Error="Text_ValidationError" 
      Text="{Binding UpdateSourceTrigger=LostFocus, Path=firstName, ValidatesOnDataErrors=true, NotifyOnValidationError=true}" Margin="30,12,50,245"> 
     <TextBox.Style> 
      <Style TargetType="TextBox" > 
       <Style.Triggers> 
        <DataTrigger Binding="{Binding Path=firstName}" Value=""> 
         <Setter Property="Background"> 
          <Setter.Value> 
           <VisualBrush Stretch="None"> 
            <VisualBrush.Visual> 
             <TextBlock Text="First name" /> 
            </VisualBrush.Visual> 
           </VisualBrush> 
          </Setter.Value> 
         </Setter> 
        </DataTrigger> 
       </Style.Triggers> 
      </Style> 
     </TextBox.Style> 
    </TextBox> 
+0

validationerrosを表示するには、Validation.ErrorTemplate – blindmeis

答えて

1

は、それが(実際には、壊れている可能性がありますバインディング必要はありません、このためDataTriggerを使用しないでください。私はそれを考えることができる唯一のことは、これをしないように可能性がありますされます作業)、通常のTriggerを使用します。

<Trigger Property="Text" Value=""> 
    <Setter Property="Background"> 
     <Setter.Value> 
      <VisualBrush Stretch="None"> 
       <VisualBrush.Visual> 
        <TextBlock Text="First name" /> 
       </VisualBrush.Visual> 
      </VisualBrush> 
     </Setter.Value> 
    </Setter> 
</Trigger> 

はこれをテストし、それが動作します。これには、コントロールのフォーカスが失われてソース文字列が更新されるのではなく、ユーザーが入力を開始したときにすぐに背景が消えるという利点もあります。

+0

を使用する必要があります。これは私のためには機能しませんでした。全体のxamlを投稿してください。 – blindmeis

+0

Blindmeis、ここにはTextBoxのコード全体があります(ここでのコメントには長すぎます):http://pastebin.com/sfZv1xey – humanstory

関連する問題