簡體   English   中英

Xamarin.Forms MVVM從DIsplayAlert獲得響應

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM