WPFのパスワードは非依存の属性の依存関係プロパティに変換されます

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 " />

 

おすすめ

転載: www.cnblogs.com/dujian123/p/10953969.html