I ended up resolving this by creating a new ListViewItem class which inherits the ListViewItem and then adding a custom property. I then used the new class in referencing a ListViewItem throughout my code which allowed me to add a new attribute to the default ListViewItem.
Public Class cust_ListViewItem
Inherits ListViewItem
Private _read As Boolean
Private RegularFont As New Font(Me.Font.FontFamily, Me.Font.size, FontStyle.Regular)
Private BoldFont As New Font(Me.Font.FontFamily, Me.Font.size, FontStyle.Bold)
Public Property Read As Boolean
Get
Return _read
End Get
Set(value As Boolean)
_read = value
MarkAsRead()
End Set
End Property
Private Sub MarkAsRead()
If _read Then Me.Font = RegularFont Else Me.Font = BoldFont
End Sub
End Class
Then to call my new property, I used the following:
Dim lvi As cust_ListViewItem = New cust_ListViewItem
If Notifications(x).Read = True Then
lvi.Read = True
...
However, I also found the following Link which allows you to completely remove the checkbox from individual listview items which is what I was initially trying to achieve. I just added the code to my custom listview class and applied the code to every listview item.