Ican Use This Class And Bind To PasswordBox Its Working.............
public static class Secure
{
private static readonly DependencyProperty PasswordInitializedProperty =
DependencyProperty.RegisterAttached("PasswordInitialized", typeof(bool), typeof(Secure), new PropertyMetadata(false));
private static readonly DependencyProperty SettingPasswordProperty =
DependencyProperty.RegisterAttached("SettingPassword", typeof(bool), typeof(Secure), new PropertyMetadata(false));
public static string GetPassword(DependencyObject obj)
{
return (string)obj.GetValue(PasswordProperty);
}
private static string currentPassword = string.Empty;
public static void SetPassword(DependencyObject obj, string value)
{
obj.SetValue(PasswordProperty, value);
}
public static readonly DependencyProperty PasswordProperty =
DependencyProperty.RegisterAttached("Password", typeof(string), typeof(Secure),
new FrameworkPropertyMetadata(Guid.NewGuid().ToString(), HandleBoundPasswordChanged)
{
BindsTwoWayByDefault = true,
IsNotDataBindable=false,
DefaultUpdateSourceTrigger = UpdateSourceTrigger.LostFocus
});
private static void HandleBoundPasswordChanged(DependencyObject dp, DependencyPropertyChangedEventArgs e)
{
var passwordBox = dp as PasswordBox;
if (passwordBox == null)
return;
if ((bool)passwordBox.GetValue(SettingPasswordProperty))
return;
if (!(bool)passwordBox.GetValue(PasswordInitializedProperty))
{
passwordBox.SetValue(PasswordInitializedProperty, true);
passwordBox.PasswordChanged += HandlePasswordChanged;
}
passwordBox.Password = e.NewValue as string;
}
private static void HandlePasswordChanged(object sender, RoutedEventArgs e)
{
var passwordBox = (PasswordBox)sender;
passwordBox.SetValue(SettingPasswordProperty, true);
SetPassword(passwordBox, passwordBox.Password);
passwordBox.SetValue(SettingPasswordProperty, false);
}
}
and After That We Use the Set Binding at code Behind by using c# For the Dynamic Binding... in wpf
PasswordBox passwordBox = new PasswordBox() { Height =30, Width = 450, HorizontalAlignment = System.Windows.HorizontalAlignment.Left, VerticalAlignment = System.Windows.VerticalAlignment.Top, Name = passwordBox1 };
passwordBox.SetBinding(Secure.PasswordProperty, new Binding(strValueBinding) { Mode = BindingMode.TwoWay });
its Working........