/// <summary> /// Updates the items. /// </summary> /// <param name="newItems">New items.</param> void UpdateItems(List <GameObject> newItems) { RemoveCallbacks(); newItems = SortItems(newItems); var new_selected_indices = SelectedIndices .Select(x => objects.Count > x ? newItems.IndexOf(objects[x]) : -1) .Where(x => x != -1).ToList(); SelectedIndices.Except(new_selected_indices).ForEach(Deselect); objects = newItems; base.Items = newItems.Convert <GameObject, ListViewItem>(Utilites.GetOrAddComponent <ListViewItem>); SelectedIndices = new_selected_indices; AddCallbacks(); }