Подтвердить что ты не робот

Добавить параметр в событие Click Button

У меня есть кнопка wpf:

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

И я хочу передать {Binding Code} переданный как параметр обработчику button1_click.
Как мне это сделать?

Отказ от ответственности: действительно новый для WPF

4b9b3361

Ответ 1

Простое решение:

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

В вашем обработчике добавьте объект sender к Button и получите доступ к свойству Tag:

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

Более элегантным решением было бы использовать Командный шаблон WPF: создать команду для функции, которую вы хотите, чтобы кнопка выполнялась, bind Command к свойству Button Command и привяжите CommandParameter к вашему значению.

Ответ 2

Я не слишком поклонник "тега", поэтому, возможно,

<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()
 }

Ответ 3

Ну, есть два способа сделать это:

Вставьте DataContext

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

Или используйте свойство Tag, которое является общим свойством состояния

 <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;
}