2013-02-15 53 views

回答

0

您可以像任何其他函數一樣手動引發事件,因爲事件處理函數只是一個函數,與發生事件時傳遞給它的數據相關聯。

所以,讓我們說你有一個模擬事件處理程序:

private void Button_Click_1(object sender, RoutedEventArgs e) 
{ 
    Debug.WriteLine("TEST"); 
} 

您可以輕鬆地手動調用它:

Button_Click_1(btnTest, new RoutedEventArgs()); 

在這種情況下,你可以提供自己的發件人。如果你想特別提出一個事件,而不必明確地綁定到你自己的事件處理程序,看看this answer - 你可以使用反射,但我不知道你爲什麼需要它。

+0

事件和事件處理程序之間有區別,不是嗎?特別是在路由事件和事件處理程序之間。 – Haspemulator 2013-02-15 22:47:04

+0

Event!=事件處理程序。您提出一個事件並通過一個顯然的事件處理程序處理它。 – 2013-02-15 23:04:16

+0

OP詢問如何提出事件,而不是如何調用處理函數。調用單個處理程序和調用具有潛在錯誤數量的監聽程序的事件之間存在巨大差異。特別是在點擊等路由事件的情況下。 – Haspemulator 2013-02-15 23:12:17