WPF动态表项

本文关键字:动态 WPF | 更新日期: 2023-09-27 17:49:01

我有一个TabControl,动态创建的选项卡和内容根据传入的XML而变化,但是,我还需要创建几个tabitem,而不管XML内容如何。当我添加一个<TabItem Header="Users"/>,我收到一个项目集合必须是空的,然后使用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>

有办法吗?谢谢!

WPF动态表项

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

您可以使用CompositeCollection来实现所需的功能。这可能会有帮助(尽管它在这里谈到了TreeView)绑定到CompositeCollection中的单个元素