Use an ObservableCollection
rather.
ObservableCollection<myModel> myOC = new ObservableCollection<myModel>();
where myModel
is a class that has to be constructed transforming your columns in the DataTable to Properties.
In your MainViewModel, loop through the DataReader and create myOC
out of it.
Now bind myOC
to a ListView in your page.
The DataTemplate of ListView should be a view(UserControl) drawing data from a ViewModel constructed out of myModel
But your UserControl has the entire ListView inside. If that is on purpose, then let me know the entire design to give a better idea.