2016-09-19 46 views
0

我有这个Passwordbox这个触发器:WPF Relaycommand得到passwordbox值

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

我如何,我RelayCommand,让我PasswordBox的内容?

这是我的继电器命令:

PasswordChanged = new RelayCommand<object>(param => this.GoPasswordChanged()); 

private void GoPasswordChanged() 
{  
} 
+0

刚刚访问'PasswordBox.Password'财产? – Noctis

+0

http://stackoverflow.com/a/4649830/2819451 – Gopichandar

+0

Nop,我的继电器命令是在我的viewmodel中,我无法直接访问Passworxbox.password – WWWWWWWWWWWWWWP

回答

0

我找到了解决办法,我刚改:

<i:InvokeCommandAction Command="{Binding PasswordChanged}" /> 

要:

<i:InvokeCommandAction Command="{Binding PasswordChanged}" CommandParameter="{Binding ElementName=PasswordBoxInput}" /> 

和:

PasswordChanged = new RelayCommand<object>(param => this.GoPasswordChanged(param)); 

private void GoPasswordChanged(param) 
     { 

     } 

要:

private void GoPasswordChanged(object param) 
     { 
      var passwordBox = param as PasswordBox; 
      var password = passwordBox.Password; 
     } 
+0

恕我直言,请将您的密码作为视图模型中的属性绑定。所以你可以直接从viewmodel进行访问 – Eldho