の検証を行おうとしていPasswordBoxます。検証を行うために、このリンクをたどりました。これは、で検証する方法を示していますTextBox。
問題は付属していPasswordBoxesます。Passwordセキュリティ上の理由からバインドできないため、このリンクに従ってバインドを作成しようとしました ( CodeProject ユーザー向けにここでも説明されています)。
どうやら、素晴らしい!私PasswordBoxをそのPasswordプロパティにバインドできるので、検証にバインドできます。しかし、それは私を無視します...
これはTextBox私が使用し、正常に動作する定期的なものです:
<local:ErrorProvider Grid.Column="1" Grid.Row="2" >
    <TextBox Width="160" 
          HorizontalAlignment="Left" 
           Name="textBoxUserPass" 
           Text="{Binding Path=Password, UpdateSourceTrigger=Explicit}" />
 </local:ErrorProvider>
そして、これはPasswordBox私がシミュレートしようとしたものです:
<local:ErrorProvider Grid.Column="1" Grid.Row="2" >
      <PasswordBox Width="160"
          HorizontalAlignment="Left"
          Name="textBoxUserPass"
          local:PasswordBoxAssistant.BindPassword="True"
          local:PasswordBoxAssistant.BoundPassword="{Binding Path=Password, UpdateSourceTrigger=Explicit}" />
 </local:ErrorProvider>
これは私がBindingExpressionfor eachを取得する方法ですTextBox:
BindingExpression beUserName = textBoxUserName.GetBindingExpression(TextBox.TextProperty);
if (beUserName != null) beUserName.UpdateSource();
そして、これは私がそれを取得する方法ですPasswordBox:
BindingExpression bePassword = textBoxUserPass.GetBindingExpression(PasswordBoxAssistant.BoundPassword);
if (bePassword != null) bePassword.UpdateSource();
間違いを犯した場合 (Validation クラスで定義)、これを行うと:
if (!beUserName.HasError && !bePassword.HasError)
エラー検証に応じて、それぞれが真または偽BindingExpressionとなるはずです。しかし、私にとっては価値がありません...何か考えはありますか?  PasswordBox