Ich habe eine TabControl
Kontrolle
<TabControl Name="Farms_myVillages"
ItemsSource="{Binding Villages}">
</TabControl/>
Im Code dahinter füge ich einige Tabs dynamisch zum TabControl
wie folgt:
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);
}
wobei VillageUserControl
ist eine UserControl
die sich mit dem angegebenen Dorf befassen. Dieser Code funktioniert gut und liefert die erwarteten Ergebnisse...
Das Problem ist, dass ich nicht möchte, dass dies im Code dahinter steht, sondern nur in der xaml
selbst.
Ich versuche dies:
<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>
Nachdem ich es ausgeführt habe, wird eine Ausnahme ausgelöst: "Das angegebene Element ist bereits das logische Kind eines anderen Elements. Trennen Sie es zuerst."
Habe ich etwas verpasst? Bitte helfen Sie mir hier...