2010-06-16 25 views
1

此問題僅與任何事件處理程序中的第一個參數有關,即'object'。有關事件'object'參數的最佳做法

我只是想了解應該在提高活動時採用的最佳做法。

當事件源自我的對象本身時,情況很簡單,在這種情況下,我可以簡單地調用... RaiseSomeEvent(this,someArgs)。

如果我的對象是作爲中間人行事,而事件來自其他對象,並且中間人只是負責再次提升它,應該做些什麼? 在這種情況下,我會有兩個選擇:

1)RaiseSomeEvent(sender,someArgs)//只傳遞源對象傳遞的對象。 2)RaiseSomeEvent(this,someArgs)

是否有關於事件的「對象」參數的規則?就像,它應該引用源對象(引發這個事件的那個),或者我可以按照我的要求做到嗎?

回答

3

我會在這裏使用框架來獲得靈感。

通常,情況是最簡單的 - 對象是引發事件的對象。

但是,有些情況下對象會「過濾」事件並充當框架中的中間人。想到的情況是WPF中的路由事件 -

在這種情況下,框架使用在EventArgs中添加指定原始對象的屬性的方法,並將「this」用於該事件。有關詳情,請參閱RoutedEventArgs.OriginalSource