如何将我的列表传递给按钮单击事件?

How can I pass my list to button click event?

我试图将我的 fruit1 列表传递给 fruitBtn_Clicked,但我无法做到。 这是我之前尝试过的;

fruitBtn_Clicked += (sender, EventArgs) => { fruitBtn_Clicked(sender, EventArgs, fruit1); };

我遇到了这个错误;

严重性代码说明项目文件行抑制状态 错误 XFC0002 事件处理程序“fruitBtn_Clicked”在类型“OOP_proje.Views.Test”中找不到正确的签名。

我也试过了,但我得到了同样的错误;

fruitBtn_Clicked += delegate (object sender2, EventArgs e2) { fruitBtn_Clicked(sender2, e2, fruit1); };

public partial class Test : ContentPage
{
  public Test()
  {
    var fruit1 = new List<Fruits> { };

  }

  private void fruitBtn_Clicked(object sender, EventArgs e)
  {

  }
}

您无法更改委托的参数(数字或其他),这就是您收到此错误的原因。

只需在更高的位置声明您的变量'fruit1',以便委托人可以看到:

public partial class Test : ContentPage
{
    var fruit1;
    public Test()
    {
        fruit1 = new List<Fruits> { };

    }

    private void fruitBtn_Clicked(object sender, EventArgs e)
    {
        // use fruit1 here
    }
}

您也可以将其更改为 属性(然后使用大写字母):

public partial class Test : ContentPage
{
    var Fruit1 { get; set; }
    ...
}