2017-06-09 17 views
1

我按如下所示使用Acr.Dialogs来显示对话框。 但是,它似乎只支持一个按钮,它是OK。不过,我想要有CancelOK按钮。ViewModel中的警报

ViewModel.cs

var alertConfig = new AlertConfig 
{ 
    Message = "Are you sure?", 
    OnOk =() => { 
     NotifyUpdated(); 
    }, 
}; 
Mvx.Resolve<IUserDialogs>().Alert(alertConfig); 
+0

,这是一个*提示*。 – Amy

+0

好吧,我正在看'提示'。 – hotspring

+0

从概念上讲,警报只是用户承认的事情 - “取消”警报没有意义。如果有决定要做,它现在提示用户输入。 – Amy

回答

2

确认对话框有OK,默认情况下取消。您可以改用Task<bool> IUserDialogs.ConfirmAsync(string message, string title = null, string okText = null, string cancelText = null, CancellationToken? cancellationToken)方法。

var confirm = await Mvx.Resolve<IUserDialogs>().ConfirmAsync("Are you sure?"); 
if (confirm) 
{ 
    NotifyUpdated(); 
} 
else 
{ 
    // User pressed Cancel 
} 

如果你想保持同步的东西,你可以使用此代码:如果你有一个以上的按键,在这一点上它不是一个警报

Mvx.Resolve<IUserDialogs>().Confirm(new ConfirmConfig 
{ 
    OnAction = b => 
    { 
     if (b) 
     { 
      NotifyUpdated(); 
     } 
     else 
     { 
      // User pressed Cancel 
     } 
    } 
}); 
+0

我没有看到在你给定的例子中取消? – hotspring

+0

我已更新示例代码以显示如何处理取消。如果你的意思是以编程方式关闭对话框,那么你应该看看[这里](https://github.com/aritchie/userdialogs/issues/68)。 –