0

例如:

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

上面的内容很好,除了没有“Slider_ValueChanged”方法,它不会编译。不仅如此,如果我想以编程方式创建多个滑块,我可能想为它们提供不同名称的不同处理程序。

理想情况下,我想做类似的事情:

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

基本思想是按需返回以编程方式预配置的滑块面板,我可以根据用户选择的选项来换入和换出。以编程方式创建的滑块的事件处理程序的实际实现已经存在于项目中。

根据下面 Matthew Walton 的回答更正了代码。

4

1 回答 1

0

我认为答案已经在您的问题中,除了您的代码不太正确。

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

将附加some_handler到事件。由此,您可以编写一个方法,该方法将幻灯片的处理函数和其他信息作为参数,并使用它来设置事件处理程序和其他相关数据,并可能返回幻灯片对象或将其存储在集合中或您需要做的任何事情。

您可能还想研究匿名函数和 lambda,这是为循环内创建的不同对象构建相似但不同的事件处理程序的有用方法。

于 2012-08-03T09:20:23.060 回答