2017-06-09 13 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)。 –