Заголовки списка просмотра Windows Phone - PullRequest
0 голосов
/ 18 января 2012

У меня есть список объектов, связанных с ListView в Windows Phone 7, и я связал его следующим образом:

<ListBox Height="595" HorizontalAlignment="Left" Margin="9,6,0,0" Name="lst_Today"  VerticalAlignment="Top" Width="441" ScrollViewer.VerticalScrollBarVisibility="Visible" SelectionChanged="lst_Today_SelectionChanged" ItemsSource="{Binding}" >
                    <ListBox.ItemTemplate>                            
                        <DataTemplate>                                
                            <StackPanel Orientation="Horizontal">                                    
                                <TextBlock Text="{Binding Name}"></TextBlock>
                                <TextBlock Text="{Binding StartTime}"></TextBlock>
                            </StackPanel>                                
                        </DataTemplate>                            
                    </ListBox.ItemTemplate>
                </ListBox>

Я получаю вывод, похожий на этот

Name118: 00

Name219: 00

Name313: 00 .

.

.

.

.

Я хотел бы добавить некоторый интервал между двумя свойствами (то есть, именем и временем начала) и, возможно, добавить заголовки столбцов в список, чтобы результат выглядел так:

Имя StartTime

Name1 18: 00

Имя2 19: 00

Name3 13:00 ,

.

.

.

Возможно ли это с помощью списка или я должен использовать что-то еще, например, Grid?

Спасибо!

Ответы [ 2 ]

2 голосов
/ 18 января 2012
<Grid Height="500">

 <Grid.RowDefinitions>
      <RowDefinition Height="50"/>
      <RowDefinition Height="100*"/>
 </Grid.RowDefinitions>
 <Grid.ColumnDefinitions>
      <ColumnDefinition Width="100"/>
      <ColumnDefinition Width="100"/>
  </Grid.ColumnDefinitions>


   <TextBlock Text="Name" Grid.Row="0" Grid.Column="0" Padding="10" />
   <TextBlock Text="Start Time" Grid.Row="0" Grid.Column="1" Padding="10" />

   <ListBox Height="595" HorizontalAlignment="Left" Margin="9,6,0,0" Name="lst_Today"  VerticalAlignment="Top" Width="441" Grid.Row="1" Grid.ColumnSpan="2">
    .......
   </listBox>


</Grid>

Попробуйте это, я думаю, это поможет вам ...

0 голосов
/ 18 января 2012

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

10px поле на 2-м TextBlock

<ListBox Height="595" HorizontalAlignment="Left" Margin="9,6,0,0" Name="lst_Today"  VerticalAlignment="Top" Width="441" ScrollViewer.VerticalScrollBarVisibility="Visible" SelectionChanged="lst_Today_SelectionChanged" ItemsSource="{Binding}" >
                    <ListBox.ItemTemplate>                            
                        <DataTemplate>                                
                            <StackPanel Orientation="Horizontal">                                    
                                <TextBlock Text="{Binding Name}"></TextBlock>
                                <TextBlock Margin="10,0,0,0" Text="{Binding StartTime}"></TextBlock>
                            </StackPanel>                                
                        </DataTemplate>                            
                    </ListBox.ItemTemplate>
                </ListBox>

Вы также можете использовать Grid вместо StackPanel. Если вы создаете определение столбца и не используете столбец, он будет работать так же, как и Margin, но будет более явным.

<ListBox Height="595" HorizontalAlignment="Left" Margin="9,6,0,0" Name="lst_Today"  VerticalAlignment="Top" Width="441" ScrollViewer.VerticalScrollBarVisibility="Visible" SelectionChanged="lst_Today_SelectionChanged" ItemsSource="{Binding}" >
                <ListBox.ItemTemplate>
                    <DataTemplate>
                        <Grid>
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="Auto" />
                                <ColumnDefinition Width="10" />
                                <ColumnDefinition Width="Auto" />
                            </Grid.ColumnDefinitions>
                            <TextBlock Grid.Column="0" Text="{Binding Name}"></TextBlock>
                            <TextBlock Grid.Column="2"  Text="{Binding StartTime}"></TextBlock>
                        </Grid>
                    </DataTemplate>
                </ListBox.ItemTemplate>
            </ListBox>

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...