2

我正在尝试使用下面的 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>
4

1 回答 1

0

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

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

于 2013-06-18T06:32:04.297 回答