У меня есть приложение Windows.Forms с ListBox, заполненным объектами Account.
Когда пользователь выбирает Учетную запись из списка, я прикрепляю EventHandler, отвечающий за обновление транзакций с выбранной Учетной записью, если есть какие-либо новые, пока пользователь ищет.
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
var selected = listBox1.SelectedItem as Account;
if (selected != null)
{
UpdateTransactions(selected);
selected.OnNewTransaction += (s, a) => UpdateTransactions(selected);
}
}
Тогда мой вопрос заключается в следующем; Этот обработчик событий автоматически удаляется, как только пользователь выбирает другую учетную запись из списка и выбранная учетная запись выходит из области видимости?
Или он продолжает задерживаться, а затем, если пользователь снова выбирает ту же учетную запись, ему назначается другой обработчик, что создает утечку памяти?