▪ 前言
通过 C# 代码动态生成的按钮,需要自定义点击事件。但是生成的点击事件的参数是固定的,如何才能传入自定义的参数?
默认的固定参数
Button button = new Button()
{
Margin = new Thickness(5),
Content = "我是按钮",
};
button.Click += uiButton_Click;
// 生成的点击事件的方法参数是固定的
private void uiButton_Click(object sender, RoutedEventArgs e)
{
// 按钮执行的逻辑 ...
}
自定义参数
下面使用Lambda表达式,实现往按钮点击事件中传入自定义的参数:
Button btn = new Button()
{
Content = "这是按钮",
Margin = new Thickness(5),
};
btn.Click += (e, a) => MyBtnClick(s);
// 点击事件可传入任意自定义参数
private void MyBtnClick(Student s)
{
// 按钮执行的逻辑
}