WP8 WrapPanel ItemsControl没有显示所有项目

时间:2013-06-18 05:54:38

标签: binding windows-phone-8 wrappanel

我正在尝试使用下面的XAML代码创建一个可滚动区域来显示控件。我的问题是我只看到项目渲染时显示的一个项目。我正在使用ObservableCollection来获取数据。

我已经附加了集合上的CollectionChanged事件,并且肯定会看到添加了多个项目,但视图始终只显示一个项目。

如果我手动将HubTiles放置在WrapPanel(不是数据绑定)内,则瓷砖会正确显示。此外,我尝试用按钮控件替换中心磁贴,我确实看到了多个按钮,所以我想知道HubTile控件是否存在问题。

这是我的XAML:

<Grid x:Name="dataGrid" Grid.Row="1">
        <ScrollViewer x:Name="myPanel" HorizontalAlignment="Stretch" Width="Auto" Margin="0" >
            <toolkit:WrapPanel MaxWidth="{Binding ActualWidth, ElementName=myPanel, Mode=OneWay}" Margin="0" HorizontalAlignment="Center" ItemHeight="230" ItemWidth="230">
                <ItemsControl x:Name="images">
                    <ItemsControl.ItemsPanel>
                        <ItemsPanelTemplate>
                            <toolkit:WrapPanel Orientation="Horizontal" />
                        </ItemsPanelTemplate>
                    </ItemsControl.ItemsPanel>
                    <ItemsControl.ItemTemplate>
                        <DataTemplate>
                            <toolkit:HubTile 
                                Style="{Binding Source={StaticResource media}}"
                                Message="{Binding Data.Caption}"
                                Source="{Binding Data.Source}"
                                />
                        </DataTemplate>
                    </ItemsControl.ItemTemplate>
                </ItemsControl>
            </toolkit:WrapPanel>
        </ScrollViewer>
    </Grid>

1 个答案:

答案 0 :(得分:0)

没有更多信息很难说, 但我注意到的第一件事是你在ScrollViewer中有一个WrapPanel, 并且WrapPanel包含ItemsControl,WrapPanel为ItemsPanel。

“内部”WrapPanel没有ItemWidth或ItemHeight。有没有理由你有两个WrapPanel?