// Create the UserList interface private void DrawUserInterface() { for (int i = pnlUserView.Controls.Count - 1; i >= 0; i--) { Control control = pnlUserView.Controls[i]; if (control.GetType() == typeof(UserItem)) { pnlUserView.Controls.Remove(control); } } userItems.Clear(); foreach (var user in DataInstance.users.OrderBy(u => u.Role.Name)) { UserItem userItem = new UserItem(); userItem.Location = new Point(0, userItem.Size.Height * userItems.Count); var userInstance = user; userItem.Populate(ref userInstance); // Check for repeated users of the same type if (userItems.Count > 0 && String.Equals(userItems.Last().UserReference.Role.Name, user.Role.Name)) { // Decide if the UserItem should be displayed with a shade of the same color if (!userItems.Last().isUsingAlternativeColor) { userItem.AlternativeColor(); } } userItems.Add(userItem); pnlUserView.Controls.Add(userItem); } }