private void PopulateTreeWithLevels() { string previousValue = ""; bool foundPrevious = false; TreeIter selected; if (tree.Selection.GetSelected(out selected)) { previousValue = (string)ListModel.GetValue(selected, 0); } List <string> levels = LevelManager.GetLevelList(); ListModel.Clear(); for (int i = 0; i < levels.Count; i++) { TreeIter itr = ListModel.AppendValues(levels[i]); if (previousValue == levels[i]) { foundPrevious = true; selected = itr; } } if (!foundPrevious) { // If not, here's the default ListModel.GetIterFirst(out selected); } tree.Selection.SelectIter(selected); }