我正在尝试使用 android alertdialog 向用户显示通知(消息)。我用于项目的模式是 MVVM(MVVMCross)。
我将消息传递给 viewmodel 属性,例如:
private string _messageHeader;
public string MessageHeader
{
set { _messageHeader = value; }
get { return _messageHeader = "A test messageaHeader"; }
}
private string _message;
public string Message
{
set { _message = value; }
get { return _message = "A test message"; }
}
然后我从视图中调用我的属性并将它们传递给警报对话框。
public StockSearchMasterViewModel StockSearchMasterViewModel
{
get { return (StockSearchMasterViewModel)base.ViewModel; }
set { base.ViewModel = value; }
}
AlertDialog.Builder builder = new AlertDialog.Builder(this);
AlertDialog alertDialog = builder.Create();
alertDialog.SetTitle(StockSearchMasterViewModel.MessageHeader);
alertDialog.SetMessage(StockSearchMasterViewModel.Message);
alertDialog.SetButton("OK", (s, ev) => Command.Execute(null));
alertDialog.SetButton2("Cancel", (s, ev) => alertDialog.Hide());
alertDialog.Show();
.
.
.
来自 viewmodel 的新消息,新的 alertdialogpopup
alertDialog.SetTitle(StockSearchMasterViewModel.MessageHeader2);
alertDialog.SetMessage(StockSearchMasterViewModel.Message2);
alertDialog.SetButton2("OK", (s, ev) => alertDialog.Hide());
alertDialog.Show();
我在这里想要实现的是,当用户在对话框中按下 OK 时,ICommand 将在 viewmodel 中执行一个方法,如果某些条件有效或无效,则会有第二条消息。我的问题是第二条消息。我不知道如何将它再次传递给警报对话框,因为警报对话框不会停止主线程到 .Show() (假设因为是异步操作)并且会继续运行,直到函数完成其周期。