You can enumerate over any collection that implements the IEnumerable interface, and this is adequate for one-time data binding in Silverlight. However, to set up dynamic bindings so that insertions or deletions in the collection can update the UI automatically, the collection must implement the INotifyCollectionChanged interface. This interface exposes the CollectionChanged event, an event that should be raised whenever the underlying collection changes.
Silverlight provides the ObservableCollection<(Of <(T>)>) class, which is a provided base class data collection that implements the INotifyCollectionChanged interface, as well as the INotifyPropertyChanged interface. It also has the expected collection support, defined by deriving from the Collection<(Of <(T>)>) class.
For an example, see Walkthrough: Binding to a Collection and Creating a Master/Details View.