棱镜交互确认——回调或不回调



InteractionRequestConfirmation同步Raise一起使用时,有两种方法可以获得确认结果。最流行的方式似乎是:

Confirmation confirmation = new Confirmation()
{
    Title = "Confirmation",
    Content = "Do you really want to do this?"
};
DeleteConfirmationRequest.Raise(confirmation, c => {
    if (c.Confirmed)
    {
        // do something terrible
    }
});

然而,由于在这种情况下我并不真正关心用户是否取消了请求或甚至没有订阅确认,所以我可以这样做:

Confirmation confirmation = new Confirmation()
{
    Title = "Confirmation",
    Content = "Do you really want to do this?"
};
DeleteConfirmationRequest.Raise(confirmation);
if (confirmation.Confirmed)
{
    // do something terrible
}

据我所知,这两者之间并没有真正的区别。我是对的,还是我遗漏了什么?

您的意思是同步=例如IsModal=true的PopupWindowAction吗?在这种情况下,我想没有回调的变体是可以的。

尽管回调变体在实现发生变化时更安全,例如,操作的Invoke不再阻塞,或者Confirmation在内部克隆,回调不会得到您传入的相同实例…

相关内容

  • 没有找到相关文章

最新更新