How to return collection of ListViewItems?
c#, listview, winforms
Solution
Are you looking for this?
// declared in AnimalManager class
private static List<Animal> AnimalList { get; set; }
public static ListViewItem[] DisplayAllAnimals()
{
//Show animals on ListView by proper column
var listViewItems = new List<ListViewItem>();
foreach (var animal in AnimalList)
{
ListViewItem item = new ListViewItem(animal.Id); // generated ID
item.SubItems.Add(animal.AnimalSort); // AnimalSort
item.SubItems.Add(animal.Name); //Name
item.SubItems.Add(animal.Age); //Age
item.SubItems.Add(animal.Gender.ToString()); // Animal gender
listViewItems.Add(item);
}
return listViewItems.ToArray();
}
// Mainform UI class where its used
lsbOverview.Items.AddRange(AnimalManager.DisplayAllAnimals());
Problem
Sorry for the newbie question about `ListViewItems` but had never used `ListView` before and what I am trying to do is to return all `ListViewItems` from `AnimalManager` class back to UI `lsbOverview` control. Reason to this approach is that I have a `Manager` class which handles all the data and returns it to UI controls. The question is how do I return all items back to `lsboverView` `ListView`? ``` // declared in AnimalManager class private static List<Animal> AnimalList { get; set; } public static ListViewItem DisplayAllAnimals() { //Show animals on ListView by proper column foreach (var animal in AnimalList) { ListViewItem item = new ListViewItem(animal.Id); // generated ID item.SubItems.Add(animal.AnimalSort); // AnimalSort item.SubItems.Add(animal.Name); //Name item.SubItems.Add(animal.Age); //Age item.SubItems.Add(animal.Gender.ToString()); // Animal gender return item; } // how to return all items back to UI ? } // Mainform UI class where its used lsbOverview.Items.Add(AnimalManager.DisplayAllAnimals()); ```