C# 代码隐藏中的Xamarin表单单击事件不等待视图模型中的异步确认
我在一个页面上有一个取消按钮,该页面在C# 代码隐藏中的Xamarin表单单击事件不等待视图模型中的异步确认,c#,xamarin,mvvm,xamarin.forms,C#,Xamarin,Mvvm,Xamarin.forms,我在一个页面上有一个取消按钮,该页面在ViewModel中绑定了Command: private async void ExecuteCanceledCommand() { bool confirmResult = await Application.Current.MainPage.DisplayAlert("Cancel", "Are you sure you want to cancel?", "OK",
ViewModel
中绑定了Command
:
private async void ExecuteCanceledCommand()
{
bool confirmResult = await Application.Current.MainPage.DisplayAlert("Cancel",
"Are you sure you want to cancel?",
"OK",
"Cancel");
if (confirmResult)
{
// do stuff in viewmodel
}
else return;
}
}
然后,在XAML
code-behind中单击绑定到此属性的属性:
public void OnCanceledConfirmed()
{
// Do stuff in code behind
}
如果用户从ViewModel
触发的DisplayAlert模式中选择OK,我只想在onCanceledConfirmmed()
方法中执行一些操作。当从代码背后单击ok按钮时,是否有方法执行此操作或触发此操作 我通过将“模式确认”对话框移到“代码隐藏”而不是“视图模型”来解决这个问题。这允许我在代码隐藏中执行我想要的操作,然后我可以从那里调用ViewModel中我想要的方法。单击OK
时,为什么要调用OnCancled
?为button对象创建一个事件方法/处理程序,并调用所需的内容。为了清晰起见,我进行了更新。我想根据用户是否在viewmodel的弹出窗口中单击“OK”,对代码进行一些更改。