WPF在TabControl的选项卡中显示ListView,具有不同的内容

时间:2016-03-30 11:27:19

标签: wpf xaml listview datatemplate tabcontrol

我正在尝试在TabControl的标签中显示WPF ListView。我正在努力实现以下目标:如果我点击某个按钮,则应创建一个新的TabItem,并且TabItem ListView应显示其自己的内容。

因此,如果我点击另一个按钮,则应创建一个新标签项,并且此第二个标签项中的ListView应显示另一个内容。

我正在设置DataContext以在列表视图中显示项目。列表视图中的行显示如下:

XAML:

<GridViewColumn Width="1500">
    <GridViewColumn.CellTemplate>
        <DataTemplate>
            <TextBlock Text="{Binding myLine}"/>
        </DataTemplate>
    </GridViewColumn.CellTemplate>
</GridViewColumn>

列表视图显示如下:

<TabControl x:Name="tabControl" Grid.Column="2" HorizontalAlignment="Left" Height="372" Margin="10,32,0,0" VerticalAlignment="Top" Width="894">
    <TabControl.ItemTemplate>
        <DataTemplate DataType="{x:Type local:MyTab}">
            <TextBlock Text="{Binding _header}"/>
        </DataTemplate>
    </TabControl.ItemTemplate>
    <TabControl.ContentTemplate>
        <DataTemplate DataType="{x:Type local:MyTab}">
            <ListView x:Name="myListView" ...></ListView>
        </DataTemplate>
    </TabControl.ContentTemplate>
</TabControl>

如何使用自己的内容显示各种标签?

1 个答案:

答案 0 :(得分:0)

您必须将DataContext中的标签列表绑定到TabControl.ItemsSource

<TabControl ItemsSource="{Binding Tabs}"/>

在您的DataContext上有一个名为Tabs的属性,它是您的数据类型的列表或集合;

public IList<MyTab> Tabs { get; private set; }