void UpdateItems(List <GameObject> newItems) { newItems = SortItems(newItems); RemoveCallbacks(); var selected_indicies = new List <int>(); SelectedIndicies.ForEach(index => { var new_index = newItems.FindIndex(x => x == objects[index]); if (new_index != -1) { selected_indicies.Add(index); } }); var base_items = new List <ListViewItem>(); newItems.ForEach(x => { var item = x.GetComponent <ListViewItem>() ?? x.AddComponent <ListViewItem>(); base_items.Add(item); }); objects = newItems; base.Items = base_items; selected_indicies.ForEach(x => Select(x)); AddCallbacks(); }
protected virtual void UpdateItems(List <TItem> newItems) { newItems = SortItems(newItems); SelectedIndicies.ForEach(index => { var new_index = newItems.FindIndex(x => x.Equals(customItems[index])); if (new_index == -1) { Deselect(index); } }); customItems = newItems; UpdateView(); }
void UpdateItems(List <string> newItems) { newItems = FilterItems(newItems); var new_selected_indicies = NewSelectedIndicies(newItems); SelectedIndicies.ForEach(x => { if (!new_selected_indicies.Contains(x)) { Deselect(x); } }); strings = newItems; UpdateView(); }