void Main_UpdateMapList() { Level[] loaded = LevelInfo.Loaded.Items; string selected = GetSelected(main_Maps); // Always new data source, avoids "-1 does not have a value" when clicking a row LevelCollection lc = new LevelCollection(); foreach (Level lvl in loaded) { lc.Add(lvl); } main_Maps.DataSource = lc; Reselect(main_Maps, selected); main_Maps.Refresh(); }