0
在MVVM,如果我們想的ViewModels之間的互動,我們可以使用事件彙總做到這一點。如何使用Caliburn.Micro Event Aggregation處理具有返回值的方法?
我知道在Caliburn.Micro中,我們可以實現IHandle和IHandle(T)接口並編寫我們自己的句柄方法。 但是我們只能編寫無返回值的Handle方法。 就像我們只能實現:
public void Handle()
{
}
public void Handle(T parameter)
{
}
,如果我想有一個返回值,就像這樣:
public TResult Handle(T parameter)
{
}
任何幫助嗎?
這是不支持開箱即用,和而理論上你就可以做這樣的事情,你需要考慮的實現,它是如何工作的。 事件聚合器是訂戶服務,這意味着可能有許多超過1偵聽每個事件。 如果每個事件都有很多監聽器,那麼許多方法調用可能會返回很多結果值,從而使調用者實現更加複雜。 是否有你想要做一個很好的理由嗎? – Charleh
只有導體可以執行Show.Child().Configured(view => view.Configure());它必須返回一個IResult值,但我想在另一個viewmodel中執行它,所以這就是原因。 –
coldjokelife
你可以給你的用例在你的問題中的代碼示例,這將是有益的! (僞代碼很好!) – Charleh