У меня есть List<string>
, и я хочу перебрать эту коллекцию и что-то сделать с каждой строкой при нажатии кнопки. У меня есть небольшой пример, чтобы проиллюстрировать, что я пытаюсь сделать:
//items is a System.Collections.Generic.List<string>
foreach (string s in items)
{
Button b = new Button() { Content = s };
b.Click += (obj, ev) =>
{
MessageBox.Show(s);
}
//add b to form, container, etc...
}
Как и следовало ожидать, кнопки создаются соответствующим образом с правильным содержанием, однако, когда я нажимаю любую из кнопок, текст внутри MessageBox
всегда является последней строкой в items
. Чего мне не хватает с этим? Почему все функции Click
для кнопок передаются последнему элементу в коллекции?