Добавить параметр в событие 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
Ответы
Ответ 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;
}