c# - 时间: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;
}
有什么建议么?
解决方案
推荐阅读
- bash - 如何复制特定文本下方的特定行?
- c++ - 从 int 到 char 的转换失败,控制台打印出奇怪的符号
- python-3.x - 如何在 Pandas 中使用正则表达式?
- python - 如何重新着色图像中的多个像素 - Python
- c++ - 如何在 C++ 中通过地址获取变量的值?
- python - Fiona 访问 shapefile 中多个多边形的坐标
- python - 创建一个删除下载文件的函数
- android - 元素显示在设计窗口中,但未显示在 Android Studio 的模拟器中
- angular - 为什么我的 Angular 应用程序找不到嵌入式组件?
- docker - kubectl 与版本 apps/v1 中的 kind Service 不匹配