我有一个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);
}
where VillageUserControl
is a UserControl
涉及指定村庄。这段代码工作正常并且得到了预期的结果......
问题是我不希望它出现在后面的代码中,而只是出现在xaml
itself.
我试试这个:
<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>
我运行它后,它抛出一个异常:“指定的元素已经是另一个元素的逻辑子元素。首先断开它。”
我错过了什么?请在这里帮助我...
你设置了错误的东西,你不应该修改ItemContainerStyle但是TabControl.ItemTemplate对于标题和TabControl.ContentTemplate为内容。
(例外可能与以下事实有关:在样式中只有一个VillageUserControl
已创建,但该样式适用于多个选项卡项目。)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)