WinPhone7 программирование ListBox Multi Column - PullRequest
0 голосов
/ 09 марта 2012

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

listbox1.ItemsSource = videos;

В xaml:

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

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

Listbox

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

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

Ответы [ 2 ]

4 голосов
/ 09 марта 2012

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

       <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>
1 голос
/ 09 марта 2012

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

<StackPanel Orientation="Horizontal"/>

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

РЕДАКТИРОВАТЬ: Использование WrapPanel в качестве ItemsPanel.

В этом примере используется WrapPanel из Silverlight для 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 -->
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...