public void Display(Task[] tasks) { var currentTaskId = (string)_lstTasks.CurrentItem?.Attachment; Display_items(); Set_current_item(); void Display_items() { _lstTasks.Clear(); foreach (var t in tasks) { var item = _lstTasks.Add(Format_task_info(t)); Embelish_item(item, t); } } void Set_current_item() { if (_lstTasks.Items.Length == 0) { return; } if (currentTaskId == null) { _lstTasks.CurrentItemIndex = 0; } else { var taskEntry = Locate_task_entry(currentTaskId); if (taskEntry.item == null) { _lstTasks.CurrentItemIndex = 0; } else { _lstTasks.CurrentItemIndex = taskEntry.index; } } } }