[英]Xamarin.Forms MVVM getting responce from DIsplayAlert
如何從MVVM視圖正確使用DisplayAlert()
?
我有一些屏幕和ViewModel。 在ViewModel內部,我定義了一些Actions
:
class PageViewModel : INotifyPropertyChanged
{
public Action DisplayDataSavedPromt;
public event PropertyChangedEventHandler PropertyChanged = delegate { };
public ICommand SaveCommand { protected set; get; }
public PageViewModel()
{
SaveCommand = new Command(OnSubmit);
}
public void OnSubmit()
{
DisplayDataSavedPromt();
}
}
然后我從View Page.cs
調用它:
public Page ()
{
var vm = new PageViewModel();
this.BindingContext = vm;
vm.DisplayDataSavedPromt += () => DisplayAlert("Success", "Your data are saved", "OK");
InitializeComponent ();
}
而且工作正常,但我不明白如何將某些操作綁定到此警報的按鈕? 例如,當用戶在“警報”中單擊“確定”時,打開新頁面。
我應該在ViewModel
內部還是在View內部進行?
您可以在視圖模型中嘗試
var res = await App.Current.MainPage.DisplayAlert("Success", "Your data are saved", "Ok", "Cancel");
if(res){//logic} else {//logic}
您需要等待用戶操作,然后解析結果,如下所示:
var result = await DisplayAlert("Success", "Your data are saved", "Ok", "Cancel");
//User pressed OK
if(result == true)
{
// do your logic
}
else // User pressed Cancel
{
// do your logic
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.