Prism WPF:如何移动回调以返回IDialogResult.Result==Buttonresult.ok



我想移动以下接口:

public interface IDialogService
{
void ShowDialog(string name, IDialogParameters parameters, Action<IDialogResult> callback);
}

我使用以下代码:

protected bool AbortDeleteDialog()
{
bool abort= true; 
DialogService.ShowDialog("Should xy be deleted?", [some parameters...],
r => abort = r.Result != ButtonResult.OK);
return abort;
}

出于测试目的,我想要r.Result有时匹配ButtonResult.OK,有时不匹配。有什么方法可以用最小起订量做到这一点吗?

您可以使用回调:

var mock = new Mock<IDialogService>();
mock.Setup(x => x.ShowDialog(It.IsAny<string>(), It.IsAny<IDialogParameters>(), It.IsAny<Action<IDialogResult>>())
.Callback((string name, IDialogParameters parameters, Action<IDialogResult> callback) =>
callback(new DialogResult(ButtonResult.Ok)));
...
thing.AbortDeleteDialog();

最新更新