public void DisplayUpdate(Task task) { var taskEntry = Locate_task_entry(task.Id); if (!Try_update_existing()) { Add_new(); } Embelish_item(taskEntry.item, task); bool Try_update_existing() { if (taskEntry.item == null) { return(false); } var currentItemIndex = _lstTasks.CurrentItemIndex; _lstTasks.RemoveAt(taskEntry.index); taskEntry.item = new Listbox.Item(Format_task_info(task)); _lstTasks.Insert(taskEntry.index, taskEntry.item); _lstTasks.CurrentItemIndex = currentItemIndex; return(true); } void Add_new() { taskEntry.item = _lstTasks.Add(Format_task_info(task)); _lstTasks.CurrentItemIndex = _lstTasks.Items.Length - 1; } }