Я использую rg.plugins.popup
У меня есть процедура, которая проверяет, есть ли конфликт, и спрашивает ли пользователя, как он хотел бы продолжить,Процедура - это метод bool
, который вызывается в начале нажатия другой кнопки.
Если нет конфликта, простой день, всплывающее окно не требуется.
Я собирался использовать MessingingCenter
для возврата ввода пользователя, но я не уверен, как сделать вызовметод ожидания ответа.
Я искал достаточно, чтобы понять, что блокировка потока пользовательского интерфейса - плохая идея.
ViewModel
{
...
private void ExecuteFooCommand()
{
if (widget.CheckForConclicts)
{
//do stuff
} else
{
//do different stuff
}
\\do stuff that is dependent on those results
}
...
}
public class Widget
{
...
public bool CheckForConflicts()
{
if (conflicts)
{
Messenging.Center.Subscribe<MessagePopup>(this, "DialogResult", (args) =>
{
// I'd like to return args.result
}
}
MessagePopup.ShowMessageBox("Alert", msg, true);
return false;
}
...
}