Как мне получить серию объектов IEnumerable, чтобы они выглядели как одна большая стековая панель в Windows Phone 7? - PullRequest
2 голосов
/ 16 июня 2011

Для этого примера у меня есть IList <>, который содержит набор объектов, которые также являются списками.например, лига состоит из набора команд, и эти команды состоят из игроков.То, что мне нужно, - это один список с одной полосой прокрутки.

Я пробовал вложенные элементы управления ListBox, но в итоге получается стек из нескольких полос прокрутки, который действует ужасно.Прокрутка просто плохая, и кажется, что она скрывает нижнюю часть списка игроков команды.

Любая помощь будет отличной !!

Ответы [ 2 ]

2 голосов
/ 16 июня 2011

Вместо ListBox, почему бы не использовать ItemsControl? ListBox обеспечивает выбор, если вам это не нужно, ItemsControl будет более легким и будет загружаться быстрее . Кроме того, с ItemsControl вы имеете полный контроль над элементами, в которых хранятся ваши предметы. Таким образом, вы можете опустить ScrollViewer.

Чтобы отобразить ваши предметы, попробуйте следующее:

<ItemsControl ItemsSource={Binding League.Teams}>
  <!-- use a StackPanel to host your elements -->
  <ItemsControl.ItemsPanel>
    <ItemsPanelTemplate>
      <StackPanel Orientation="Vertical"/>
    </ItemsPanelTemplate>
  </ItemsControl.ItemsPanel>
  <!-- render each team -->
  <ItemsControl.ItemTemplate>
    <DataTemplate>
      <!-- render each player within the team -->
      <ItemsControl ItemsSource={Binding Players}>
        <ItemsControl.ItemsPanel>
          <ItemsPanelTemplate>
            <StackPanel Orientation="Vertical"/>
          </ItemsPanelTemplate>
        </ItemsControl.ItemsPanel>
        <ItemsControl.ItemTemplate>
          <DataTemplate>
            <!-- render the player's name -->
            <TextBlock Text="{Binding Name}"/>
          </DataTemplate>
        </ItemsControl.ItemTemplate>
      </ItemsControl>
    </DataTemplate>
  </ItemsControl.ItemTemplate>
</ItemsControl>
0 голосов
/ 16 июня 2011

Вы можете отключить полосы прокрутки для ListBox довольно легко.Просто добавьте ScrollViewer.VerticalScrollBarVisibility="Disabled" к атрибутам XAML для внутреннего ListBox.

...