For .Net the DataGridView is much better than the ListView.
You can serialize the data into and from files that are either a delimited file (such as CSV) or a XML or a JSON file. Instead of serializing directly into and from the DataGridView, the better solution is to serialize into/from a collection and make the collection a data source for the DataGridView.
You can load XML using ReadXml and write using WriteXml; the documentation has sample code. The following are examples of setting the data source.
- Load XML File Into a DataGridView Using C#
- How to display XML data using Datagridview in C# - Stack Overflow
- c# - Import XML to datagridview - Stack Overflow
I suggest you first write a console program similar to what is in the documentation that writes out sample data then reads it back in and writes it to the console. Just to become familiar with doing that.
Also consider using SQLite. It is a database that is installed with current versions of Windows (Windows uses it). It is lightweight and intended for uses such as this.