我在MainPage.xaml中有以下代码:

<controls:PivotItem Header="first">
    <ListBox x:Name="MyListBox" Margin="0,0,-12,0" ItemsSource="{Binding ListBoxItem}">
        <ListBox.ItemTemplate>
            <DataTemplate>
                <StackPanel Orientation="Horizontal" Height="132">
                    <TextBlock Text="{Binding text}" />
                </StackPanel>
            </DataTemplate>
        </ListBox.ItemTemplate>
    </ListBox>
</controls:PivotItem>


我需要使用这种模型在运行时中创建N个PivotItem。我该怎么做?

最佳答案

让您的PivotItem声明为静态资源。

<UserControl.Resources>

<DataTemplate x:Key="MyPivotItemTemplate">
   <controls:PivotItem Header="first" >
                <ListBox x:Name="MyListBox" Margin="0,0,-12,0" ItemsSource="{Binding ListBoxItem}">
                    <ListBox.ItemTemplate>
                        <DataTemplate>
                            <StackPanel Orientation="Horizontal" Height="132">
                                <TextBlock Text="{Binding text}" />
                            </StackPanel>
                        </DataTemplate>
                    </ListBox.ItemTemplate>
                </ListBox>
            </controls:PivotItem>
</DataTemplate>

</UserControl.Resources>


然后在您的数据透视声明中,将其用作项目的模板。

<Pivot .... ItemsTemplate="{StaticResource MyPivotItemTemplate}" Items="{Binding MyCollectionInDataContext}"


这样,每次将内容添加到MyCollectionInDataContext时,都会根据您定义的模板创建一个PivotItem

10-08 02:53