我有一个带有动态创建的选项卡和内容的TabControl,这些选项卡和内容根据传入的XML而有所不同,但是,无论XML内容如何,我还需要创建几个TabItem。当我添加<TabItem Header="Users"/>
时,我收到的Items Collection在使用ItemsSource之前必须为空。这就是我现在所拥有的:
<TabControl ItemsSource="{Binding Content}">
<TabControl.ItemTemplate>
<DataTemplate>
<TextBlock Text="Header"/>
</DataTemplate>
</TabControl.ItemTemplate>
<TabControl.ContentTemplate>
<DataTemplate>
<TextBlock Text="Tab Content"/>
</DataTemplate>
</TabControl.ContentTemplate>
</TabControl>
有没有这样做?谢谢!
答案 0 :(得分:3)
如错误所示,您必须在ItemsSource
的数据绑定或设置Items
属性之间进行选择 - 您不能同时执行这两项操作。您可以使用CompositeCollection
将动态选项卡的内容与包含非动态选项卡的另一个集合进行组合。然后,您可以将ItemsSource
绑定到此CompositeCollection
。
答案 1 :(得分:1)
您可以使用CompositeCollection来实现所需的功能。 这可能会有所帮助(尽管它在这里讨论了TreeView) - Binding to a single element inside a CompositeCollection