У меня есть TabControl
контроль
<TabControl Name="Farms_myVillages"
ItemsSource="{Binding Villages}">
</TabControl/>
В коде ниже я динамически добавляю несколько вкладок к TabControl
следующим образом:
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);
}
, где VillageUserControl
- это UserControl
, которые имеют дело с указанной деревней. Этот код работает нормально, и он получает ожидаемые результаты ...
Проблема в том, что я не хочу, чтобы это было в коде, а только в самом xaml
.
Я пытаюсь это:
<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>
После его запуска выдается исключение: «Указанный элемент уже является логическим дочерним элементом другого элемента. Сначала отключите его».
Я что-то пропустил? Пожалуйста, помогите мне здесь ...