2011-07-04 34 views
0

我想添加列到列表控件。我想在運行時創建它們,因爲在執行期間列號可能會有所不同。那我該怎麼做呢?如何將列添加到Windows Phone 7中的列表控件?

+0

您是否希望將列添加到整個列表或單個ListItems?你有什麼嘗試? –

+0

我想在列表中添加項目,但它們應該顯示爲I1 I2 I3 I4而不是單獨的行。我試圖用網格來做,但我堅持讓它們可以滾動。 – rubyraj

回答

1

首先,擁有真正可變數量的colums是一個壞主意,因爲您無法控制應用程序的外觀,而且您很容易就會看到非常糟糕的,難以閱讀的,或者兩者兼而有之。

如果您希望爲列表中的每一行添加多列(我已經完成了類似於顯示體育聯盟表格的操作),那麼向ListItemTemplate添加一個網格,確保爲每個單元設置固定寬度。

如果你只是想使水平而不是滾動列表垂直,你可以做到這一點與以下:

<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0"> 
    <ListBox ItemsSource="{Binding MyList}" 
      ScrollViewer.HorizontalScrollBarVisibility="Auto" 
      ScrollViewer.VerticalScrollBarVisibility="Disabled"> 
     <ListBox.ItemsPanel> 
      <ItemsPanelTemplate> 
       <!-- Could be a VirtualizingStackPanel if you wish --> 
       <StackPanel Orientation="Horizontal" /> 
      </ItemsPanelTemplate> 
     </ListBox.ItemsPanel> 
     <ListBox.ItemTemplate> 
      <DataTemplate> 
       <!-- Style set to enhance need for scrolling --> 
       <TextBlock Style="{StaticResource PhoneTextExtraLargeStyle}" 
          Text="{Binding}" /> 
      </DataTemplate> 
     </ListBox.ItemTemplate> 
    </ListBox> 
</Grid> 

注意滾動條可見性也控制是否可以滾動。

+0

它工作得很好,謝謝你。但是它有問題。假設我將列表滾動到10個項目,然後我從列表中選擇一個項目。現在,當我用新項目填充列表,然後加載後,顯示屏顯示上一個滾動位置的項目。我想重置滾動到第一項。我嘗試通過傳遞列表框的第一個項目列表框scrollintoview(對象),但它不起作用。我有辦法這樣做。 – rubyraj

+0

@rubyraj如果你想重置位置,只需在內部滾動查看器中調用ScrollToVerticalOffset(0)。 –

相關問題