gpt4 book ai didi

c# - 使用mvvm的 Prism 中的密码更改事件行为无法正常工作

转载 作者:行者123 更新时间:2023-12-03 10:43:36 27 4
gpt4 key购买 nike

我正在触发密码更改事件和命令操作
xaml

 <PasswordBox VmWindow:PasswordHelper.Attach="True" Height="25" Width="180" HorizontalAlignment="Left" 
FontFamily="Arial" FontSize="11" BorderBrush="#FF959BA0" TabIndex="2"
VmWindow:PasswordHelper.Password="{Binding Path=Password, Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" >
<i:Interaction.Triggers>
<i:EventTrigger EventName="PasswordChanged">
<i:InvokeCommandAction Command="{Binding ChangePasswordCommand}" />
</i:EventTrigger>
</i:Interaction.Triggers>

</PasswordBox>

密码更改了事件代码:
 private static void PasswordChanged(object sender, RoutedEventArgs e)
{
PasswordBox passwordBox = sender as PasswordBox;
SetIsUpdating(passwordBox, true);
SetPassword(passwordBox, passwordBox.Password);
SetIsUpdating(passwordBox, false);
}

命令操作
public ICommand ChangePasswordCommand { get; private set; }
public LoginViewModel ViewModel { get; set; }
private void ExecuteChangePasswordCommand()
{
try
{
if (loginModel != null)
{
loginModel.LoginPassword = Password;
}
}
catch (Exception exception)
{
}

}

问题:

当应用程序加载时,最初发生的事情是我在文本框中输入char“首先触发事件,然后可以正常进行操作”,但是当我按下第二个char时,“我的 Action 首先触发然后触发就是问题”

我不知道这是预定义的过程,还是我做错了什么。因为根据我的订单,应该始终 事件,操作而不是 操作,事件

请让我知道我错了。

最佳答案

最后,花了很多时间后,我可以通过一些其他更改来解决上述问题

添加Microsoft.Expressions.Interactions的引用

添加两个引用:

xmlns:i="clrnamespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
xmlns:ei=http://schemas.microsoft.com/expression/2010/interactions

在密码框中做了一些更改:
<PasswordBox VmWindow:PasswordHelper.Attach="True" Height="25" Width="180" HorizontalAlignment="Left" 
FontFamily="Arial" FontSize="11" BorderBrush="#FF959BA0" TabIndex="2"
VmWindow:PasswordHelper.Password="{Binding Path=Password, Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" >
<i:Interaction.Triggers>
<i:EventTrigger EventName="PasswordChanged">
<ei:CallMethodAction TargetObject="{Binding}" MethodName="changePassword"/>
</i:EventTrigger>
</i:Interaction.Triggers>


</PasswordBox>

在LoginViewModel中创建方法
 public void changePassword(object sender, RoutedEventArgs e)
{
PasswordBox passwordBox = sender as PasswordBox;
loginModel.LoginPassword = passwordBox.Password;
}

Done With更改了其干净的MVVM,现在没有任何代码

关于c# - 使用mvvm的 Prism 中的密码更改事件行为无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39347984/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com