Porque no creas una clase de tipo productos y esa la guardas en tu session para tenerla disponible todo el tiempo y con ello puedas agregar o eliminar tus elementos
ejemplo (obvio tendrás que afinarlo más a lo que requieres, solamente es la idea)
Código:
Public Class Productos
Public producto As String
Public cantidad As Integer
End Class
generas una property publica
Código:
Private m_ListaProductos As List(Of Productos)
Public Property ListaProductos() As List(Of Productos)
Get
If (m_ListaProductos Is Nothing) Then
m_ListaProductos = New List(Of Productos)
End If
Return m_ListaProductos
End Get
Set(ByVal value As List(Of Productos))
m_ListaProductos = value
End Set
End Property
y en cada pantalla que necesites vas agregando los elementos que necesites
Código:
Dim producto As Productos = New Productos()
producto.cantidad = 1
producto.producto = "Producto1"
ListaProductos.Add(producto)
Session("Productos") = ListaProductos
y para obtener el contenido
Cita: Dim Lista As List(Of Productos) = DirectCast(Session("Productos"), List(Of Productos))
Y con ello todo el tiempo tienes la misma referencia para agregar o quitar elementos de tu objeto ListaProductos
Espero haber sido claro