2012-08-03 24 views
0

例如:上面如何以編程方式創建一個名稱作爲變量的事件處理程序?

MySlider.ValueChanged += new RoutedPropertyChangedEventHandler<double>(Slider_ValueChanged); 

都很好不同之處在於不具有「Slider_ValueChanged」方法目前它不會編譯。更重要的是,如果我想以編程方式創建多個滑塊,我可能希望給他們不同的名稱不同的處理程序。

理想我想這樣做:

var x = some_handler; 
MySlider.ValueChanged += new RoutedPropertyChangedEventHandler<double>(x); 

的基本思想就是要回報的需求,我可以在短短的交換和出根據用戶選擇的選項滑塊的編程預設面板。項目中已經存在編程創建的滑塊的事件處理程序的實際實現。

更正了代碼,按照Matthew Walton的回答。

回答

0

我認爲答案已經在你的問題中,除了你的代碼不完全正確。

var x = some_handler; 
MySlider.ValueChanged += new RoutedPropertyChangedEventHandler<double>(x); 

將附加some_handler事件。因此,您可以編寫一個方法,將幻燈片的處理函數和其他信息作爲參數,並使用該方法設置事件處理程序和其他相關數據,並可能返回幻燈片對象或將其存儲在集合中或者你需要做的任何事情。

您可能還想查看匿名函數和lambda表達式,這可能是構建循環內創建的不同對象的類似但不同的事件處理程序的有用方法。

相關問題