I have a main window with a tab control containing 2 tabItems:

I currently
You can indeed add the view models for your tabs to a main view model. You can then bind to the child view models in the XAML for your tabs.
Say that you have three viewmodels: MainViewModel, Tab1ViewModel, and Tab2ViewModel. On your MainViewModel you keep a collection of your tab viewmodels:
class MainViewModel
{
ObservableCollection
After setting the DataContext of your main window to your MainViewModel you can bind the DataContext of your tabs by referencing the Children property: