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 中进行?
你可以在你的视图模型中试试这个
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)