WPF动态TabItems

时间:2011-04-07 17:08:29

标签: c# wpf tabcontrol

我有一个带有动态创建的选项卡和内容的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>

有没有这样做?谢谢!

2 个答案:

答案 0 :(得分:3)

如错误所示,您必须在ItemsSource的数据绑定或设置Items属性之间进行选择 - 您不能同时执行这两项操作。您可以使用CompositeCollection将动态选项卡的内容与包含非动态选项卡的另一个集合进行组合。然后,您可以将ItemsSource绑定到此CompositeCollection

答案 1 :(得分:1)

您可以使用CompositeCollection来实现所需的功能。 这可能会有所帮助(尽管它在这里讨论了TreeView) - Binding to a single element inside a CompositeCollection