+1  A: 

you should create a template for your viewmodel in your app.xaml file like this

 <DataTemplate DataType="{x:Type simpleModel:TextBoxInputViewModel}">
        <myView:TextBoxInputControl />
    </DataTemplate>

where simpleModel is the namespace of TextBoxInputViewModel, and TextBoxInputControl is the user control you want to show and myView is the namespace of that user control.

ArsenMkrt
Alright but the TextBoxInputViewModel might be an other control, it's dynamic this is why I cannot write it directly into the Xaml.
Daok
+2  A: 

The problem is that ItemSource is a collection, where as you're binding it to a property that is just one value. The error in the Output window that you're seeing is likely related to this.

Instead of returning a UserControl directly from your View Model, it would be better to return another View Model that represents the contents of the tab, and use templates to display that content. If you need it to be more dynamic than choosing the template based on the Type of the View Model, look into setting TabControl.ContentTemplateSelector. This needs to be set to a class that derives from DataTemplateSelector. You can use this class to decide which template to load based on the object bound to that tab.

Andy
Alright, tonight when back from work I will investigate from your point of view. I will let you know if it works or not.
Daok
Thank you very much, this is so obvious when you know. In fact, you light me up with the collection. I was so wrong, but instead of using DataTemplateSelector, I simply used ContentTemplate inside the TabControl and in the template I binded to the Path=Gui and it worked! Thanks!
Daok