3

私が使用PasswordBoxしていて、ユーザーが何かを入力したときに検出したい場合は、ボタンのステータスを有効に変更する必要があります。ユーザーが に何か入力したかどうかを確認するにはどうすればよいPasswordBoxですか?

TextBoxテキストにバインドできず、ユーザーが何かを入力すると何らかのイベントが発生するため、動作が異なります。何か案が?

以下のコードを試してみましたが、エラーが発生します。

<PasswordBox>
    <i:Interaction.Triggers>
        <EventTrigger EventName="KeyDown">
            <si:InvokeDataCommand Command="{Binding MyCommand}" />
        </EventTrigger>
    </i:Interaction.Triggers>  
</PasswordBox>
4

2 に答える 2

3

次のようにPasswordChangedイベントを使用できます。Interactions

XAML

xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"

<PasswordBox BorderBrush="#FFB0B1AB"
             Width="100"
             Height="25"
             VerticalAlignment="Bottom">

    <i:Interaction.Triggers>
        <i:EventTrigger EventName="PasswordChanged">
            <i:InvokeCommandAction Command="{Binding PasswordChangedCommand}" />
        </i:EventTrigger>
    </i:Interaction.Triggers>
</PasswordBox>

RelayCommand

private ICommand _passwordChangedCommand = null;

public ICommand PasswordChangedCommand
{
    get
    {
        if (_passwordChangedCommand == null)
        {
            _passwordChangedCommand = new RelayCommand(param => this.PasswordChanged(), null);
        }

        return _passwordChangedCommand;
    }
}

private void PasswordChanged()
{
    // your logic here
}

Some useful links

PasswordBox in WPF Tutorial

Binding to PasswordBox in WPF (using MVVM)

MVVM で PasswordBox にバインドする方法

于 2014-03-02T14:28:27.917 に答える