1つのパッケージPasswordBoxBindingHelper
パブリック 静的 クラスPasswordBoxBindingHelper { パブリック 静的 ブールGetIsPasswordBindingEnabled(のDependencyObjectのOBJ) { リターン(BOOL )obj.GetValue(IsPasswordBindingEnabledProperty)。 } パブリック 静的 ボイド SetIsPasswordBindingEnabled(のDependencyObjectのOBJ、ブール値) { obj.SetValue(IsPasswordBindingEnabledProperty、値)。 } パブリック 静的 読み取り専用たDependencyProperty IsPasswordBindingEnabledProperty = DependencyProperty.RegisterAttached(" IsPasswordBindingEnabled "、typeof演算(ブール値)、 typeof演算(PasswordBoxBindingHelper)、 新しい UIPropertyMetadata(偽、OnIsPasswordBindingEnabledChanged)); プライベート 静的 ボイドはOnIsPasswordBindingEnabledChanged(OBJのDependencyObject、DependencyPropertyChangedEventArgs E) { VAR passwordBox = OBJ としてPasswordBox。 もし(!passwordBox = ヌル) { passwordBox.PasswordChanged - = PasswordBoxPasswordChanged。 もし((BOOL )e.NewValue) { passwordBox.PasswordChanged + = PasswordBoxPasswordChanged。 } } } // passwordBoxのパスワードが変更されたとき、バッファ更新 静的 ボイド PasswordBoxPasswordChanged(オブジェクト送信者、RoutedEventArgs E) { VARの passwordBox = (PasswordBox)送信者; もし(!String.Equals(GetBindedPassword(passwordBox)、passwordBox.Password)) { SetBindedPassword(passwordBox、passwordBox.Password)。 } } パブリック 静的 文字列GetBindedPassword(のDependencyObjectのOBJ) { リターン(文字列)obj.GetValue(BindedPasswordProperty)。 } パブリック 静的 ボイド SetBindedPassword(OBJのDependencyObject、文字列値) { obj.SetValue(BindedPasswordProperty、値)。 } パブリック 静的 読み取り専用たDependencyProperty BindedPasswordProperty = DependencyProperty.RegisterAttached(" BindedPassword "、typeof演算(ストリング)、 typeof演算(PasswordBoxBindingHelper)、 新しい UIPropertyMetadata(文字列.Empty、OnBindedPasswordChanged)); // バッファが変更されたとき、passwordBoxのパスワードupate プライベート 静的 ボイド(DependencyObjectのOBJ、OnBindedPasswordChanged DependencyPropertyChangedEventArgs E) { VAR passwordBox = OBJ としてPasswordBox。 もし(passwordBox!= nullの) { passwordBox.Password = e.NewValue == nullの?文字列.Empty:e.NewValue.ToString(); } } }
結合2インターフェイスXAML属性
<PasswordBoxヘルパー:PasswordBoxBindingHelper.IsPasswordBindingEnabled = " 真" Grid.Row = " 4 " Grid.Column = " 1 "高さ= " 27 "証拠金= " 208,6.6,213.6,6.4 " ヘルパー:PasswordBoxBindingHelper.BindedPassword = " {バインディングパス=パスワード、モード=双方向、UpdateSourceTrigger =のLostFocus} " PasswordChanged = " TxtPassword_PasswordChanged " />