A DataSource can be anything which implements the IList or IListSource interfaces - that includes Arrays/ArrayLists, DataSets, DataTables, many different kinds of collections, as well as any class you create yourself. Any class you create which inherits CollectionBase is a valid DataSource as well.