 <p>I decided to do it through code behind. This means that I do lose my ability to use the design-time data to preview my UI; but it works at run time.</p> <p>So, in the xaml I have.</p> <pre><code> &lt;controls:MetroTabControl Grid.Column="0" Grid.ColumnSpan="2" Grid.Row="0" Grid.RowSpan="2" ItemsSource="{Binding ElementName=ucMe, Path=TabSitesCollection}"&gt; </code></pre> <p>Where ucMe is the UserControl and TabSitesCollection is a </p> <pre><code> protected CollectionViewSource m_TabSitesCollectionViewSource; protected CompositeCollection m_TabSitesComposites; public ICollectionView TabSitesCollection { get { return m_TabSitesCollectionViewSource.View; } } </code></pre> <p>That gets initialised in the constructor as follows</p> <pre><code> public ConfigSiteView() { m_TabSitesComposites = new CompositeCollection(); m_TabSitesCollectionViewSource = new CollectionViewSource(); m_TabSitesCollectionViewSource.Source = m_TabSitesComposites; InitializeComponent(); } </code></pre> <p>Then, on the Loaded event I can do</p> <pre><code> m_TabSitesComposites.Add(new CollectionContainer() { Collection = GetModel.View }); m_TabSitesComposites.Add(new TabItem() { Header = "hi" }); m_TabSitesComposites.Add(new TabItem() { Header = "ho" }); </code></pre> <p>This results in almost my desired UI <a href="https://i.stack.imgur.com/nJYOy.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/nJYOy.png" alt="enter image description here"></a></p> <p>I now simply need to spiff up my settings tab item and i'm done. For reference, the xaml designer does not have any preview data - Unless I change the xaml so that the preview loads up (which then breaks the actual execution)</p> <p>It would have been nice to have it both work while running, and on preview, but I haven't figured out how to do that, and it's not a current priority.</p>