Xamarin Android:如何将变量传递给ExpandableListView中的按钮事件方法?

时间:2018-09-27 10:46:55

标签: c# android xamarin xamarin.android

我在子视图中有一个带有按钮的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
}

DeleteActionHandler如下:

void DeleteActionHandler(object s, EventArgs e)
{
   // some implementation
   // I want  arg1 and arg2 to be passed here.
}

问题是我想从Point-1传递DeleteActionHandler中的一些参数。我可以在EventArgs中发送参数吗?还是有其他方法。

2 个答案:

答案 0 :(得分:1)

您不能直接将数据传递到DeleteActionHandler。但是,您可以使用Tag的{​​{1}}属性来设置数据,并稍后像这样buttonDeleteActionHandler中读取数据。

这是基于您的代码示例的一段代码:

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

}