2013-06-18 6 views
2

Я пытаюсь создать прокручиваемую область для отображения элементов управления с помощью кода XAML ниже. Моя проблема в том, что я вижу только один элемент, отображаемый при визуализации элементов. Я использую ObservableCollection для данных.WP8 WrapPanel ItemsControl не показывает все элементы

Я присоединен к событию 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

Сложно сказать без дополнительной информации, но первое, что я заметил, это то, что у вас есть WrapPanel в ScrollViewer, и что WrapPanel содержит ItemControl с WrapPanel как ItemsPanel. «Внутренний» WrapPanel не имеет ItemWidth или ItemHeight. Есть ли причина, по которой у вас есть два WrapPanel? –

+0

#facepalm Посмотрел на этот код сто раз, и мне никогда не приходило в голову, что есть две WrapPanels. Это разрешает мою проблему :) Если вы ответите на этот вопрос, я отмечу его как ответ. – DennyFerra

+0

Я знаю это чувство, иногда дополнительный набор глаз творит чудеса :) –

ответ

0

Трудно сказать без дополнительной информации, но первое, что я заметил, что у вас есть WrapPanel в ScrollViewer, и WrapPanel содержит ItemsControl, с WrapPanel как ItemsPanel.

«Внутренний» WrapPanel не имеет ItemWidth или ItemHeight. Есть ли причина, по которой у вас есть два WrapPanel?

Смежные вопросы