2016-12-22 3 views
0

私は以下のようにエラーを表示するためにテキストブロックコントロールを使用しています。Validation.HasErrorバインディングで動作していません

<TextBlock Text="{Binding ElementName=txtPassword, Path=(Validation.Errors)[0].ErrorContent}" 
       Visibility="{Binding ElementName=txtPassword,Path=Validation.HasError,Converter={StaticResource BoolToVisibilityConverter}}" 
       Foreground="Red" Grid.Column="1" Grid.Row="3" HorizontalAlignment="Left" /> 

テキストプロパティによるバインドは正常ですが、バインディングは可視性プロパティでは機能しません。出力ウィンドウにエラーが表示されません。

BindingExpressionパスエラー: 'Validation'プロパティが 'object' '' PasswordBox '(Name =' txtPassword ')に見つかりません。 BindingExpression:Path = Validation.HasError; DataItem = 'PasswordBox'(Name = 'txtPassword');ターゲット要素は 'TextBlock'(Name = '')です。ターゲットプロパティが '可視性'(タイプ '可視性')

+0

bool? a = bxtとしてのtxtLoging.GetValue(Validation.HasErrorProperty)? ;このコードはコードの背後で働いています。 – Rudra

+0

あなたのxamlは私のために働きます。あなたの質問をコードビハインドで更新してください – lena

答えて

0

私のコードに間違いがありました。

Visibility="{Binding ElementName=txtPassword,Path=Validation.HasError,Converter={StaticResource BoolToVisibilityConverter}}" 

上記のコードは以下のようになります。

Visibility="{Binding ElementName=txtPassword,Path=(Validation.HasError),Converter={StaticResource BoolToVisibilityConverter}}" 

Validation.HasErrorは添付プロパティであり、我々は添付プロパティをバインドしているときには、()でカバーされるべきであるので。

関連する問題