2016-07-28 44 views
0

使用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 
} 

据我所知,这两者之间没有真正的区别。我是对的,还是我在这里错过了什么?

+0

'synchronous' =''PopupWindowAction'与'IsModal = true'例如?在这种情况下,我想,没有回调的变体是好的。虽然回调变体更安全,但如果实现发生变化,例如,动作的“Invoke”不再阻止,或者“Confirmation”在内部被克隆,并且回调不会获得您传入的同一个实例。 。 – Haukinger

+0

@霍金格,这应该是一个答案,而不是一个评论。简短,但重点。我没有想过克隆和模式的变化。 –

回答

1

你的意思是同步 =一个PopupWindowAction与IsModal=true例如? 在这种情况下,没有回调的变体是好的,我猜。

虽然回调变体更安全,如果实现更改,并且,例如,动作的Invoke不再阻止或Confirmation内部克隆和回调没有得到您传入的同一个实例...