Wpf 如何使用Caliburn.Micro事件聚合处理具有返回值的方法?

Wpf 如何使用Caliburn.Micro事件聚合处理具有返回值的方法?,wpf,mvvm,caliburn.micro,Wpf,Mvvm,Caliburn.micro,在MVVM中,如果我们想在viewmodels之间进行交互,我们可以使用事件聚合来实现这一点 我知道在Caliburn.Micro中,我们可以实现IHandle和IHandle(T)接口,并编写自己的句柄方法。 但我们只能编写没有返回值的句柄方法。 比如,我们只能实施: public void Handle() { } public void Handle(T parameter) { } 如果我想要一个返回值,比如: public TResult Handle(T parameter)

在MVVM中,如果我们想在viewmodels之间进行交互,我们可以使用事件聚合来实现这一点

我知道在Caliburn.Micro中,我们可以实现IHandle和IHandle(T)接口,并编写自己的句柄方法。 但我们只能编写没有返回值的句柄方法。 比如,我们只能实施:

public void Handle()
{
}


public void Handle(T parameter)
{
}
如果我想要一个返回值,比如:

public TResult Handle(T parameter)
{
}

有什么帮助吗?

只需发布另一条带有结果的消息。第一条消息的发送者订阅第二条消息。 你的情况可能吗


这可能是有用的:

这是不支持的,在理论上你可以这样做,你需要考虑实现和它是如何工作的。事件聚合器是订户服务,这意味着每个事件可能有多个侦听器。如果每个事件都有许多侦听器,那么许多方法调用可能会返回许多结果值,这使得调用方实现更加复杂。您这样做有充分的理由吗?只有导体才能执行Show.Child().Configured(view=>view.Configure());它必须返回一个IResult值,但我想在另一个viewmodel中执行它,这就是原因。请在您的问题中给出一个用例的代码示例,这将很有帮助!(伪代码很好!)