Agregar elementos de tabla dinámicamente

tengo unTabControl controlar

<TabControl Name="Farms_myVillages"
            ItemsSource="{Binding Villages}">
</TabControl/>

En el código detrás, agrego algunas pestañas dinámicamente alTabControl como sigue:

foreach (Village vill in Villages)
{
    TabItem tab = new TabItem();
    tab.Header = vill.Name;
    VillageUserControl c = new VillageUserControl();
    c.DataContext = vill;
    tab.Content = c;
    Farms_myVillages.Items.Add(tab);
}

dóndeVillageUserControl es unUserControl ese trato con el pueblo especificado. Este código funciona bien y obtiene los resultados esperados ...

El problema es que no quiero que esto esté en el código detrás, sino solo en elxaml sí mismo.

Intento esto:

<TabControl Name="Farms_myVillages"
            ItemsSource="{Binding Villages}">
      <TabControl.ItemContainerStyle>
          <Style TargetType="TabItem">
              <Setter Property="Header" Value="{Binding Name}"/>
              <Setter Property="Content">
                 <Setter.Value>
                    <u:VillageUserControl DataContext="{Binding}"/>
                 </Setter.Value>
              </Setter>
          </Style>
      </TabControl.ItemContainerStyle>
</TabControl>

Después de ejecutarlo, arroja una excepción: "El elemento especificado ya es el hijo lógico de otro elemento. Primero desconéctelo".

¿Me he perdido algo? Por favor, ayúdame aquí ...

Respuestas a la pregunta(3)

Su respuesta a la pregunta