C# 在一个按钮上执行两个继电器命令-WPF
我有一个按钮,允许用户注册帐户。当用户按下按钮时,我有一个中继命令,执行一个将其详细信息提交到数据库的方法。如果成功,我希望将用户转移到登录屏幕 我使用了EnumStateVisibility,当我使用一个转换器触发可见或隐藏的UserControls时 以下是我的代码: 在媒体上向数据库提交帐户详细信息C# 在一个按钮上执行两个继电器命令-WPF,c#,wpf,mvvm,user-controls,visibility,C#,Wpf,Mvvm,User Controls,Visibility,我有一个按钮,允许用户注册帐户。当用户按下按钮时,我有一个中继命令,执行一个将其详细信息提交到数据库的方法。如果成功,我希望将用户转移到登录屏幕 我使用了EnumStateVisibility,当我使用一个转换器触发可见或隐藏的UserControls时 以下是我的代码: 在媒体上向数据库提交帐户详细信息 // ///向数据库提交用户详细信息并检查条件 /// public RelayCommand Submitregister帐户详细信息 { 得到 { SubmitAccountDetai
//
///向数据库提交用户详细信息并检查条件
///
public RelayCommand Submitregister帐户详细信息
{
得到
{
SubmitAccountDetails submit=新建SubmitAccountDetails();
返回新的RelayCommand(参数=>submit.SubmitLoginUserDetails(电子邮件地址、邮件、密码、当前状态));
}
}
//枚举状态到可见性转换器,在窗口中打开和关闭登录和注册视图
公共对象转换(对象值、类型targetType、对象参数、System.Globalization.CultureInfo区域性)
{
LoginVisibilityState=(LoginVisibilityState)值;
LoginVisibilityStates para=(LoginVisibilityStates)Enum.Parse(typeof(LoginVisibilityStates),parameter.ToString());
如果(状态==第段)
返回可见性。可见;
其他的
返回可见性。隐藏;
}
公共对象转换回(对象值、类型targetType、对象参数、System.Globalization.CultureInfo区域性)
{
抛出新的NotImplementedException();
}
//当用户按下不同按钮时切换UserControl的逻辑,带有
//此relaycommand设置为命令,“Login”或“Register”设置为命令参数
私人登录可视状态_currentState;
公共登录可见性状态CurrentState
{
得到
{
返回当前状态;
}
设置
{
_当前状态=值;
OnPropertyChanged(“当前状态”);
}
}
#区域命令
公共中继命令开关命令
{
得到
{
返回新的RelayCommand(ChangeState);
}
}
#端区
公共void ChangeState(对象参数)
{
开关(参数.ToString())
{
“登记册”一案:
CurrentState=LoginVisibilityState.Register;
打破
案例“登录”:
CurrentState=LoginVisibilityState.Login;
打破
违约:
打破
}
}
您只能执行一个命令,但在该命令的执行
方法中,您可以执行任何您想要的操作,包括调用另一个命令、设置属性或调用方法:
return new RelayCommand(param =>
{
submit.SubmitLoginUserDetails(EmailAddress, Mail, Password, CurrentState);
//set the property or do whatever here:
LoginVisibilityStates = LoginVisibilityStates.Login;
});
为什么不创建一个新的命令/方法来调用另外两个呢?也许是复制品
return new RelayCommand(param =>
{
submit.SubmitLoginUserDetails(EmailAddress, Mail, Password, CurrentState);
//set the property or do whatever here:
LoginVisibilityStates = LoginVisibilityStates.Login;
});