9 Stimmen

Dynamisches Hinzufügen von TabItems

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...

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X