以下の XAML コードを使用して、コントロールを表示するスクロール可能な領域を作成しようとしています。私の問題は、アイテムがレンダリングされたときに表示されるアイテムが 1 つしか表示されないことです。データに ObservableCollection を使用しています。
コレクションの CollectionChanged イベントにアタッチしたところ、複数のアイテムが追加されていることがわかりますが、ビューには常に 1 つのアイテムしか表示されません。
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>