Prism 交互性确认——回调还是不回调?
Prism interactivity confirmation—callback or no callback?
将InteractionRequest
与Confirmation
和同步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
被内部克隆并且回调没有得到您传入的同一实例...
将InteractionRequest
与Confirmation
和同步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
被内部克隆并且回调没有得到您传入的同一实例...