Hola gente:
Quisiera que me quiten una duda que tengo, tengo que hacer un programa de una biblioteca y al cargar el list(of Libros) me sobreescribe los otros libros que ya habia cargado antes.
A parte tengo un listview donde me va mostrando los libros que voy cargando pero no me los guarda en el list(of libros)"solo guarda el ultimo"

Tengo una clase libros donde tengo los datos de los libros y una clase biblioteca donde esta el list

Este es el codigo del formulario de altas:

Public Class frmAltas
Public Milibro As New Libro
Public mibiblioteca As New Biblioteca
Public milista As New ListViewItem

Private Sub btAgregar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btAgregar.Click

'cargar el list
Milibro.Anio = txtAnio.Text
Milibro.Autor = txtAutor.Text
Milibro.Codigo = txtCodigo.Text
Milibro.Editorial = txtEditorial.Text
Milibro.Genero = txtGenero.Text
Milibro.Titulo = txtTitulo.Text

milista = ListView1.Items.Add(Milibro.Anio)
milista.SubItems.Add(Milibro.Autor)
milista.SubItems.Add(Milibro.Codigo)
milista.SubItems.Add(Milibro.Editorial)
milista.SubItems.Add(Milibro.Genero)
milista.SubItems.Add(Milibro.Titulo)

'carga el contenido en contenidobiblioteca
mibiblioteca.AgregarLibro(Milibro)

End Sub

// clase biblioteca

Public Class Biblioteca
Public ContenidoBiblioteca = New List(Of Libro)
Private milibro As New Libro

Public Sub AgregarLibro(ByRef x As Object)
ContenidoBiblioteca.Add(x)
End Sub