http://code.msdn.microsoft.com/mag200902MVVM/Release/ProjectReleases.aspx?ReleaseId=2026
я есть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>
После его запуска выдается исключение: «указанный элемент уже является логическим потомком другого элемента. Сначала отключите его».
Я что-то пропустил? Пожалуйста, помогите мне здесь ...