#c_sharp #wpf
Как передать дополнительную переменную в функцию? button.Click += Click_2; void Click_2(object sender, RoutedEventArgs e) Например void Click_2(object sender, RoutedEventArgs e, string str)
Ответы
Ответ 1
Через замыкание: button.Click += (o, e) => Click_2(o, e, "foo"); Или через тэг: button.Tag = "foo"; button.Click += Click_2; void Click_2(object sender, RoutedEventArgs e) { var button = (FrameworkElement)sender; var str = (string)button.Tag; } Конкретно для кнопок и клика есть возможность использовать команды: button.CommandParameter = "foo"; button.Command = new DelegateCommand(Click_2); void Click_2(string str) { } Здесь я использую DelegateCommand из библиотеки Prism, но есть и альтернативы (например, RelayCommand из библиотеки MmvmLight). Ответ 2
button.Tag = str; button.Click += Click_2; void Click_2(object sender, RoutedEventArgs e)
Комментариев нет:
Отправить комментарий