У меня есть элемент управления 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>
После запуска выдается исключение: «Указанный элемент уже является логическим дочерним элементом другого элемента. Сначала отключите его».
Я что-то пропустил? Пожалуйста, помогите мне здесь ...