2014-10-22 75 views
3

我正在爲Windows Phone 8(silverlight)創建應用程序。我想在列表框的兩列中顯示數據。我使用this method。在這篇文章中是一個用代碼演示的項目。下面是輸出的基本代碼:ListBoxItem不在ListBox中伸展

<ListBox x:Name="ItemsListBox"> 
<ListBox.ItemTemplate> 
    <DataTemplate> 
     <ItemsControl ItemTemplate="{StaticResource ItemDataTemplate}" ItemsSource="{Binding}"> 
      <ItemsControl.ItemsPanel> 
       <ItemsPanelTemplate> 
        <VirtualizingStackPanel Orientation="Horizontal" /> 
       </ItemsPanelTemplate> 
      </ItemsControl.ItemsPanel> 
     </ItemsControl> 
    </DataTemplate> 
</ListBox.ItemTemplate> 

它的工作原理,但數據不伸展,向右是自由空間。 enter image description here

我已經嘗試了許多選項

<ListBox...> 
<ListBox.Resources> 
    <Style TargetType="ListBoxItem"> 
     <Setter Property="HorizontalContentAlignment" Value="Stretch"/> 
    </Style> 
</ListBox.Resources> 

....

插入的Horizo​​ntalAlignment = 「拉伸」

,但他們沒有工作。告訴我如何擴展數據寬度?我需要讓每列佔據總寬度的一半。

這是代碼我的DataTemplate

<DataTemplate x:Key="ItemDataTemplate" > 


     <Grid HorizontalAlignment="Stretch"> 
      <Grid.ColumnDefinitions> 
       <ColumnDefinition/> 
       <ColumnDefinition Width="4*"/> 
       <ColumnDefinition/> 
      </Grid.ColumnDefinitions> 




      <Button Grid.Column="1" Margin="5" HorizontalContentAlignment="Stretch" HorizontalAlignment="Stretch" > 
       <Grid> 
        <Grid.ColumnDefinitions> 
         <ColumnDefinition/> 
         <ColumnDefinition Width="4*"/> 
         <ColumnDefinition/> 
        </Grid.ColumnDefinitions> 

        <Grid.RowDefinitions> 
         <RowDefinition/> 
         <RowDefinition/> 
        </Grid.RowDefinitions> 

        <TextBlock Grid.Row="0" Grid.Column="1" Text="{Binding Name}" /> 
        <TextBlock Grid.Row="1" Grid.Column="1" Text="{Binding AddInfo}" /> 
       </Grid> 
      </Button> 

     </Grid> 


</DataTemplate> 
+0

我嘗試 <工具箱:WrapPanel方向=「橫向」的Horizo​​ntalAlignment =「拉伸」 /> 但這行不通 - 右邊是自由空間 – FetFrumos 2014-10-22 13:14:55

+0

@EugenePodskal'UniformGrid'不存在Silverl ight/WP – McGarnagle 2014-10-22 17:34:15

+0

你也可以發佈你的「ItemDataTemplate」的標記嗎?我們需要看看你如何設置它。 – McGarnagle 2014-10-22 17:35:25

回答

0

在你的數據模板您應該添加HEIGHT = 「100%」 爲垂直拉伸或weidth = 「100%」 的水平拉伸 即內部文本塊

</Grid.RowDefinitions> 

       <TextBlock Grid.Row="0" Grid.Column="1" Text="{Binding Name}" Height="//some vale in decimal" Widht="//some vale in decimal" /> 
       <TextBlock Grid.Row="1" Grid.Column="1" Text="{Binding AddInfo}" Height="//some vale in decimal" Widht="//some vale in decimal" /> 
      </Grid> 
+0

我確實需要一個不固定的寬度 – FetFrumos 2014-11-03 11:05:48