我有多个按钮而不是做
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);
Run Code Online (Sandbox Code Playgroud)
我希望能够在伪代码中做这样的事情:
this.button*.Click += new System.EventHandler(this.button_Click);
Run Code Online (Sandbox Code Playgroud)
在Javascript中有可能在WPF中有这样的东西吗?
Mat*_*ton 11
在WPF中,Button.Click是一个路由事件,这意味着事件被路由到可视树,直到它被处理.这意味着您可以在XAML中添加事件处理程序,如下所示:
<StackPanel Button.Click="button_Click">
<Button>Button 1</Button>
<Button>Button 2</Button>
<Button>Button 3</Button>
<Button>Button 4</Button>
</StackPanel>
Run Code Online (Sandbox Code Playgroud)
现在,所有按钮将为其Click事件共享一个处理程序(button_Click).
这是一种在同一父容器中处理同一事件的简单方法.如果你想从代码中做同样的事情,你可以使用AddHandler方法,如下所示:
AddHandler(Button.ClickEvent, new RoutedEventHandler( button_Click));
Run Code Online (Sandbox Code Playgroud)
这将为窗口中的每个按钮单击添加处理程序.您可能希望为StackPanel指定一个名称(例如"stackPanel1"),并为该容器执行此操作:
stackPanel1.AddHandler(Button.ClickEvent, new RoutedEventHandler( button_Click));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8233 次 |
| 最近记录: |