2012-06-24 2 views
3

Я взял стандартный шаблон элемента GridView и немного изменил его в соответствии со своими потребностями. Я фактически немного изменил код шаблона.Почему ListView показывает только 12 элементов?

У меня есть одна группа, и у меня в ней много предметов (92 предмета). ListView делает некоторые из них, но он отображает только 12 из них. Почему это? Как я могу переопределить это и отобразить все элементы?

Вот скриншот меня сломана в отладчик, как я устанавливаю DefaultViewModel: enter image description here

добавить детали к моей ListView как так (как я анализирую XML из сервиса):

DataSource.AddItem(new DataItem(... title, name, etc, DataSource.getGroup("gallery"))); 

Тогда в моем классе DataSource (это точно так же, как один образец, я просто переименовал его), я добавил этот метод:

public static void AddItem(DataItem item) 
{ 
    item.Group.Items.Add(item); 
} 

Вот что XAML, что делает это выглядит (это то же самое, как GridView шаблона:

<GridView.ItemsPanel> 
       <ItemsPanelTemplate>       
        <VirtualizingStackPanel Orientation="Horizontal"/> 
       </ItemsPanelTemplate> 
      </GridView.ItemsPanel> 
      <GridView.GroupStyle> 
       <GroupStyle> 
        <GroupStyle.HeaderTemplate> 
         <DataTemplate> 
          <Grid Margin="1,0,0,6"> 
           <Button 
            AutomationProperties.Name="Group Title" 
            Content="{Binding Title}" 
            Click="Header_Click" 
            Style="{StaticResource TextButtonStyle}"/> 
          </Grid> 
         </DataTemplate> 
        </GroupStyle.HeaderTemplate> 
        <GroupStyle.Panel> 
         <ItemsPanelTemplate> 
          <VariableSizedWrapGrid Orientation="Vertical" Margin="0,0,80,0"/> 
         </ItemsPanelTemplate> 
        </GroupStyle.Panel> 
       </GroupStyle> 
      </GridView.GroupStyle> 
     </GridView> 

Я бы очень признателен за любую помощь.

+3

Не показывать скриншоты отладчика, показать нам код, в котором вы определяете и заполнить ваш listview ... – walther

+0

Добавил, что информация, точка скриншота должна была показать, что в группе было действительно 92 элемента. – Nico

+0

Будет полезно увидеть ваш XAML - хотя вы слегка изменили стандартный шаблон. Возможно, он отображает все, но контент обрезается, потому что у вас нет scrollviewer? – Krishna

ответ

7

сетки приложений пределы шаблона количество отображаемых элементов в каждой группе по 12 по причинам, изложенным в комментарии ниже:

public class SampleDataGroup : SampleDataCommon 
{ 
    ... 
    public IEnumerable<SampleDataItem> TopItems 
    { 
     // Provides a subset of the full items collection to bind to from a GroupedItemsPage 
     // for two reasons: GridView will not virtualize large items collections, and it 
     // improves the user experience when browsing through groups with large numbers of 
     // items. 
     // 
     // A maximum of 12 items are displayed because it results in filled grid columns 
     // whether there are 1, 2, 3, 4, or 6 rows displayed 
     get { return this._items.Take(12); } 
    } 
} 
+0

Yay: D, спасибо! – Nico