2012-01-18 55 views
0

我在Windows Phone 7的结合到ListView对象的列表,并按如下已绑定它:Windows Phone的列表视图头

<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 。

我想补充一些间隔两个属性之间(即名称和开始时间)并有可能添加列标题的列表中,这样的结果是这样的:

名称开始时间

名1 18:00

名2 19:00

NAME3 13:00 。

这是可能的使用列表视图或应该使用其他类似的网格?

谢谢!

回答

2
<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

谢谢帕万!那正是我需要的。 – Cranialsurge 2012-01-18 19:29:15

0

你有什么是完全正确的,你只需要设置保证金给你的项目之间的一些间距。 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> 

10px的保证金也可以使用一个网格,而不是StackPanel中。如果您创建了列定义,并且不使用该列,它将与边距工作相同,但更加明确。

<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包装他们。

+0

感谢willmel :) – Cranialsurge 2012-01-19 08:12:28