wpfでテキストボックス、パスワードボックス、トグルボタンを作成しました。ボタンをチェックするとパスワードが表示され、ボタンがチェックされていないときは文字が黒丸として表示される必要があります。私の問題は、アプリケーションを実行すると、ボタンがオフになっている (これはパスワードが非表示であることを意味します) が、パスワードがまだ表示されていることです。ボタンをチェックした直後、すべてが思い通りに機能します。最初からバインドするにはどうすればよいですか? 確認しただけでなく、
XML コード:
<ToggleButton Name="toggle1" Height="40" Padding="0" Width="56" Canvas.Left="131" Canvas.Top="0" BorderBrush="{x:Null}" IsChecked="{Binding ShowPassword}">
コード:
public bool IsPasswordVisible
{
get { return _IsPasswordVisible; }
set
{
if (_IsPasswordVisible == value)
return;
_IsPasswordVisible = value;
if(IsPasswordVisible)
{
passwordBox1.Visibility = System.Windows.Visibility.Collapsed;
textbox1.Visibility = System.Windows.Visibility.Visible;
textbox1.EditValue = passwordBoxEdit1.Password;
}else{
passwordBox1.Visibility = System.Windows.Visibility.Visible;
textbox1.Visibility = System.Windows.Visibility.Collapsed;
passwordBox1.Password = textEdit1.Text;
}
if (PropertyChanged != null)
PropertyChanged(this, new PropertyChangedEventArgs("ShowPassword"));
}
}
public MainWindow()
{
InitializeComponent();
this.DataContext = this;
}
public event PropertyChangedEventHandler PropertyChanged;
#region OnPropertyChanged
/// <summary>
/// Triggers the PropertyChanged event.
/// </summary>
protected void OnPropertyChanged(string propertyName)
{
PropertyChangedEventHandler handler = PropertyChanged;
if (handler != null)
handler(this, new PropertyChangedEventArgs(propertyName));
}
#endregion