2014-10-22 76 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