2012-03-09 3 views
0

У меня есть список, который показывает название и миниатюры видео в программе WinPhone 7. Я связал listbox с его ItemsSource.WinPhone7 programming ListBox Multi Column

listbox1.ItemsSource = videos; 

В XAML:

<Listbox.ItemTemplate> 
    <DataTemplate> 
    <StackPanel> 
     <TextBlock Text="{Binding title}"/> 
     <Image Source="{Binding thumbnail}"/> 
    </StackPanel> 
    </DataTemplate> 
</Listbox.ItemTemplate> 

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

Listbox

--------------------------- 
| title1  | title2 | 
| thumb1  | thumb2 | 
---------------------------- 
| title3  | title4 | 
| thumb3  | thumb4 | 
...

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

ответ

1

Если я что-то не хватает, мне кажется, вы можете просто установить ориентацию StackPanel на горизонтальной

<StackPanel Orientation="Horizontal"/> 

Это то, что вы ищете? Если нет, пожалуйста, уточните.

EDIT: Использование WrapPanel как ItemsPanel.

В этом примере используется WrapPanel от Silverlight for Windows Phone Toolkit. Возможно, вам потребуется загрузить и установить это или включить определение пространства имен для работы!

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

<PhoneApplicationPage 
    .... 
    xmlns:toolkit="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone.Controls.Toolkit" 
.... 
> 

<!-- More Stuff --> 

<ListBox> 
    <ListBox.ItemsPanel> 
     <ItemsPanelTemplate> 
      <toolkit:WrapPanel/> 
     </ItemsPanelTemplate> 
    </ListBox.ItemsPanel> 
    <Listbox.ItemTemplate> 
      <!-- your template --> 
    </Listbox.ItemTemplate> 
</ListBox> 

<!-- More Stuff --> 
+0

спасибо, Виллем, ListBox потерять это формат в моем вопросе. – ttotto

+0

мой список содержит 2 столбца и несколько строк. Каждая ячейка должна иметь заголовок и большой палец, и они должны быть последовательными. – ttotto

+0

@ttotto: Можете ли вы включить лучшее представление о том, что сейчас не так, и как оно должно выглядеть? –

4

Использование

 <ListBox.ItemsPanel> 
      <ItemsPanelTemplate> 
       <toolkit:WrapPanel Orientation="Horizontal"/> 
      </ItemsPanelTemplate> 
     </ListBox.ItemsPanel> 
     <ListBox.ItemTemplate> 
      <DataTemplate> 
       <StackPanel Orientation = "Horizontal"> 
       <TextBlock Text="{Binding title}"/> 
       <Image Source="{Binding Thumbnail}"/> 
       <StackPanel/> 
      </DataTemplate> 
     </ListBox.ItemTemplate> 
+0

спасибо нуклонам, но в моем списке есть 2 столбца и несколько строк. (строка 1, col 1) title1, thumb1 (row1, col2) title2, thumb2 (row2, col1) title3, thumb3 (row2, col2) title4, thumb4 .... Не могли бы вы узнать меня, как я могу связать itemsSource с списком? – ttotto

+0

Нуклеоны просто сделали это для вас, оберточная панель поместит ваш третий элемент во второй ряд, если размеры будут хорошими. Например, если ваш список имеет ширину 480 и ваши товары имеют ширину 240. –

+0

Установите ItemWidth = "" и ItemHeight = "" в оболочке. – nucleons