我正在尝试使用下面的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>
答案 0 :(得分:0)
没有更多信息很难说, 但我注意到的第一件事是你在ScrollViewer中有一个WrapPanel, 并且WrapPanel包含ItemsControl,WrapPanel为ItemsPanel。
“内部”WrapPanel没有ItemWidth或ItemHeight。有没有理由你有两个WrapPanel?