首页 > 解决方案 > 时间:2019-04-10 标签:c#foreachdelegateXAMARIN ANDROID

问题描述

我正在使用 Xamarin Android 开发一个 Android 应用程序。实现 UI,我有一个循环创建一些按钮和它的处理程序。我的问题是每当执行处理程序时,传递给方法的原始值是外部值(i)的引用。

private void MyUiMethod(){  
  var i = 0;
  foreach(var item in itemList){
    var data = new MyCustomData();
    var button = new Button();
    button.Click = (s, e) => ButtonClick(s, e, data, i);
    i++;
  }
}

private void ButtClick(object s, EventArgs e, MyCustomData data, int index){
  // HERE ALWAYS THE VALUE OF INDEX IS THE LAST VALUE
  // e.g. If the list has 3 items, index = 3 no matter the button I've clicked; 
}

有什么建议么?

标签: c#androidxamarindelegatesmono

解决方案


推荐阅读