Oh and one quick way to make a class bindable is just adding this:

VB Code:
  1. Inplements System.ComponentModel.IListSource
  2.  
  3.     Private ReadOnly Property ContainsListCollection() As Boolean Implements IListSource.ContainsListCollection
  4.         Get
  5.             Return False
  6.         End Get
  7.     End Property
  8.  
  9.     Public Function GetList() As IList Implements IListSource.GetList
  10.         Dim al As New ArrayList()
  11.         al.Add(Me)
  12.         Return al
  13.     End Function

There are also some other interfaces that inherit from IList or IListSource that you can use that provide more features like IBindingList.