Xamarin.Forms MVVM 从 DISplayAlert 得到响应

Ale*_*lex 2 c# mvvm xamarin xamarin.forms

如何DisplayAlert()从 MVVM 视图正确使用?

我有一些屏幕和视图模型。在 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();
    }

}
Run Code Online (Sandbox Code Playgroud)

然后我从 View 调用它Page.cs

public Page ()
{
    var vm = new PageViewModel();
    this.BindingContext = vm;
    vm.DisplayDataSavedPromt += () => DisplayAlert("Success", "Your data are saved", "OK");
    InitializeComponent ();
}
Run Code Online (Sandbox Code Playgroud)

它工作正常,但我不明白如何将某些操作绑定到此警报的按钮?例如,当用户在 Alert 中单击 OK 时,打开新页面。

我应该ViewModel以某种方式在内部还是在 View 中进行?

has*_*mks 7

你可以在你的视图模型中试试这个

var res = await App.Current.MainPage.DisplayAlert("Success", "Your data are saved", "Ok", "Cancel");

if(res){//logic} else {//logic}
Run Code Online (Sandbox Code Playgroud)