将参数添加到button单击事件

我有一个像这样的wpfbutton:

<Button Click="button1_Click" Height="23" Margin="0,0,5,0" Name="button1" Width="75">Initiate</Button> 

我想传递{Binding Code}作为parameter passing给button1_click处理程序。
我如何去做这件事?

免责声明:对WPF来说真的很新鲜

简单的scheme:

 <Button Tag="{Binding Code}" ...> 

在您的处理程序中,将sender对象转换为Button并访问Tag属性:

 var myValue = ((Button)sender).Tag; 

一个更优雅的解决scheme是使用WPF的命令模式 :为您希望button执行的function创build一个命令,将Command绑定到Button的Command属性并将CommandParameter绑定到您的值。

我也不是“标记”的粉丝

 <Button Click="button1_Click" myParam="parameter1" Height="23" Margin="0,0,5,0" Name="button1" Width="75">Initiate</Button> 

然后通过属性访问。

  void button1_Click(object sender, RoutedEventArgs e) { var button = sender as Button; var theValue = button.Attributes["myParam"].ToString() } 

那么这样做有两种方法:

投射DataContext

  void button1_Click(object sender, RoutedEventArgs e) { var button = sender as Button; var code = ((Coupon)button.DataContext).Code; } 

或者使用一个通用的状态属性的标签属性

  <Button Click="button1_Click" Height="23" Margin="0,0,5,0" Name="button1" Tag="{Binding Code}" /> 

然后

 void button1_Click(object sender, RoutedEventArgs e) { var button = sender as Button; var code = button.Tag; }