动态添加TabItems
我有一个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
本身。
我试试这个:
在我运行它之后,它抛出一个exception:“指定的元素已经是另一个元素的逻辑子元素。首先断开它。”
我错过了什么? 请帮帮我……
你设置错误的东西,你不应该修改ItemContainerStyle
而是修改标题的TabControl.ContentTemplate
和内容的TabControl.ContentTemplate
。
(例外可能与以下事实有关:在样式中只创建了一个VillageUserControl
,但样式适用于多个选项卡项。)
现在它正在运作:
你在代码中没有这个的方法是正确的,而不是使用ItemContainerStyle
使用ItemTemplate
和ContentTemplate
。 您可以查看Josh Smith的这个示例,使用模板和样式创建选项卡 –
http://code.msdn.microsoft.com/mag200902MVVM/Release/ProjectReleases.aspx?ReleaseId=2026