我有多个按钮而不是做
this.button1.Click += new System.EventHandler(this.button_Click);
this.button2.Click += new System.EventHandler(this.button_Click);
etc.
this.button10.Click += new System.EventHandler(this.button_Click);
我希望能够在伪代码中做这样的事情:
this.button*.Click += new System.EventHandler(this.button_Click);
在 Javascript 中,WPF 中可能有类似的东西吗?
最佳答案
在 WPF 中,Button.Click
是 routed event ,这意味着事件在可视化树中向上路由,直到它被处理。这意味着您可以在 XAML 中添加一个事件处理程序,如下所示:
<StackPanel Button.Click="button_Click">
<Button>Button 1</Button>
<Button>Button 2</Button>
<Button>Button 3</Button>
<Button>Button 4</Button>
</StackPanel>
现在,所有按钮都将为其 Click 事件共享一个处理程序 (button_Click)。
这是跨位于同一父容器中的一组控件处理同一事件的简单方法。如果你想从代码中做同样的事情,你可以使用 AddHandler 方法,像这样:
AddHandler(Button.ClickEvent, new RoutedEventHandler( button_Click));
这将为窗口中的每个按钮单击添加一个处理程序。你可能想给你的 StackPanel 一个名字(比如,“stackPanel1”)并且只为那个容器做:
stackPanel1.AddHandler(Button.ClickEvent, new RoutedEventHandler( button_Click));
关于wpf - 在 WPF 中,我可以像在 Javascript/Jquery 中一样将相同的点击处理程序一次附加到多个按钮吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4780132/