我在子视图中有一个带有按钮的ExpandableListView。我想将事件处理程序与按钮的单击绑定。
这是我想要实现的:
public void func1()
{
// let say we have following arguments
int arg1= 100;
SomeObject arg2 = new SomeObj("John", "1000");
button.Click -= DeleteActionHandler;
button.Click += DeleteActionHandler; // this is point-1
}
void DeleteActionHandler(object s, EventArgs e)
{
// some implementation
// I want arg1 and arg2 to be passed here.
}
问题是我想从Point-1传递DeleteActionHandler中的一些参数。我可以在EventArgs中发送参数吗?还是有其他方法。
答案 0 :(得分:1)
您不能直接将数据传递到DeleteActionHandler
。但是,您可以使用Tag
的{{1}}属性来设置数据,并稍后像这样button
在DeleteActionHandler
中读取数据。
这是基于您的代码示例的一段代码:
((Button)sender).Tag
答案 1 :(得分:0)
使用xamarin Studio将变量传递给xamarin.forms中的按钮事件方法,请参见以下示例。
示例
public partial class StackOverflowTest : ContentPage
{
public StackOverflowTest()
{
InitializeComponent();
string strvalue = "Delete";
BtnTest.Clicked += delegate (object sender2, EventArgs e2)
{
DeleteActionHandler(sender2, e2, strvalue);
};
}
private void DeleteActionHandler(object sender, EventArgs e, string strval)
{
DisplayAlert("Greeting", $"{strval}!", "Ok");
}
}