如何在 Catel 4.0 中显示带有 IMessageService 的对话框并立即(而不是异步)获得结果?
以前可以这样:
var messageService = ServiceLocator.ResolveType<IMessageService>();
var result = messageService.Show("<Message>", "<Header>", MessageButton.YesNo, MessageImage.Question);
if (result != MessageResult.Yes)
return;
现在在 Catel 4.0 中,文档说:“现在有必要使用 await 或 Task.ContinueWith 来等待结果。”
我对异步编程不是很熟悉并且尝试了很多,但最终我无法获得等待实际对话结果的方法。
我做了这样的事情:
private async Task<bool> Close()
{
var saveChanges = false;
var resolver = ServiceLocator.Default.GetDependencyResolver();
var messageService = resolver.Resolve<IMessageService>();
var result = await messageService.Show("<Text>", "<Header>", MessageButton.YesNo, MessageImage.Question);
if (result == MessageResult.Yes)
saveChanges = true;
return saveChanges;
}
有人可以告诉我我做错了什么和/或提供一个示例如何同步等待并获得结果吗?
提前致谢。