The ListBox, like the other ItemsControl can be bound to any IList, ObservableCollection
If bound to an ObservableCollection, changes happening in the collection will automatically reflect in the ListBox.
You can also bind to XML Data using an XMLDataProvider as explained in this topic:
Bind the ListBox to a CollectionViewSource to be able to bind to sorted or grouped views of your list.
You can also bind to a DataTable in an ADO.NET DataSet as follows: