2013-08-29 33 views
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) 
{ 
} 

任何幫助嗎?

+3

這是不支持開箱即用,和而理論上你就可以做這樣的事情,你需要考慮的實現,它是如何工作的。 事件聚合器是訂戶服務,這意味着可能有許多超過1偵聽每個事件。 如果每個事件都有很多監聽器,那麼許多方法調用可能會返回很多結果值,從而使調用者實現更加複雜。 是否有你想要做一個很好的理由嗎? – Charleh

+0

只有導體可以執行Show.Child ().Configured(view => view.Configure());它必須返回一個IResult值,但我想在另一個viewmodel中執行它,所以這就是原因。 – coldjokelife

+0

你可以給你的用例在你的問題中的代碼示例,這將是有益的! (僞代碼很好!) – Charleh

回答

相關問題