La liaison TabControl ItemsSource de Collecte des ViewModels

Pour une raison que je vais avoir un diable de temps à l'obtention de mon TabControl pour afficher correctement lors de la liaison de la ItemsSource à un ObservableCollection de vue des modèles. Je suis en fondant ma conception du tuto trouvé ici: http://msdn.microsoft.com/en-us/magazine/dd419663.aspx. J'ai trouvé quelques questions comme la mienne, mais aucun ne s'est attaqué à ma situation particulière.
C'est mon TabControl en xaml.

<TabControl ItemsSource="{Binding Workspaces}"
            SelectedIndex="{Binding ActiveWorkspaceIndex}"
            ItemTemplate="{StaticResource ClosableTabItemTemplate}"/>

ClosableTabItemTemplate est la suivante.

<DataTemplate x:Key="ClosableTabItemTemplate">
        <DockPanel Width="120">
          <Button 
              Command="{Binding Path=CloseCommand}"
              Content="X"
              Cursor="Hand"
              DockPanel.Dock="Right"
              Focusable="False"
              FontFamily="Courier" 
              FontSize="9"
              FontWeight="Bold"  
              Margin="0,1,0,0"
              Padding="0"
              VerticalContentAlignment="Bottom"
              Width="16" Height="16" 
              />
          <ContentPresenter 
              Content="{Binding Path=DisplayName}" 
              VerticalAlignment="Center" 
              />
        </DockPanel>
      </DataTemplate>

Workspaces est le ObservableCollection de vue des modèles. ActiveWorkspaceIndex est juste l'espace de travail actif de l'index que je suivre dans le modèle de vue. J'ai associé mon modèle de vue avec une instance d'un point de vue par la suite de modèle de données dans mon Application.fichier xaml.

<DataTemplate DataType="{x:Type vm:ViewModelStartPage}">
     <v:ViewStartPage/>
 </DataTemplate>

J'ai seulement ajouter un modèle de vue à ma collection d'espaces de travail. Je vois 2 points de vue de l'affichage dans l'onglet contrôle et ils ne sont pas à onglets. C'est presque comme le TabControl ne sait pas à traiter les différents points de vue que TabItems, sa se comporter plus comme une pile panneau, empiler les points de vue. Si je créer l'onglet articles dans le code, il fonctionne très bien comme cela:

System.Windows.Controls.TabItem i = new System.Windows.Controls.TabItem();
i.Content = new Views.ViewStartPage();
i.Header = "A Tab Item";
this.xTabControl.Items.Add(i); 

Je dois manquer de certains contenus ou de modèle de quelque chose. Je serai style mes onglets plus tard, mais pour l'instant je voudrais être heureux simplement d'obtenir les onglets de base de travail. Également le point de vue dans l'onglet contenu peut être différent pour chaque onglet, donc je ne peux pas utiliser le simple textblock TabControl exemples de modèle, je vois partout...
I. e. pas cette...

<TabControl.ContentTemplate>
    <DataTemplate>
        <TextBlock
           Text="{Binding Content}" />
    </DataTemplate>

Des idées?

J'ai essayé votre code dans un projet de test, et le TabControl fonctionne comme prévu ici. Pourriez-vous poster une image de "l'empilement" TabControl?
Merci pour lui donner un essai. J'ai fini par utiliser un ContentControl avec un TabControl modèle de données. Cela semble arranger les choses. Honnêtement, je ne suis pas assez expérimenté pour expliquer pourquoi cela a changé des choses, mais il est aujourd'hui. Je vais poster mon code de travail.

OriginalL'auteur akagixxer | 2012-12-23