2010-05-02 126 views
0

我是Windows Phone 7开发的全新产品,几乎和Silverlight一样新。我有一个DataTemplate,StackPanel的一个列表框,和的TextBlocks像这样:将列动态添加到列表框

<ListBox Height="355" HorizontalAlignment="Left" Margin="6,291,0,0" Name="detailsList" VerticalAlignment="Top" Width="474" Background="#36FFFFFF"> 
     <ListBox.ItemTemplate> 
      <DataTemplate> 
       <StackPanel Orientation="Horizontal"> 
        <TextBlock Width="50" Text="{Binding Ticker}" /> 
        <TextBlock Width="50" Text="{Binding Price}" /> 
        <TextBlock Width="50" Text="{Binding GainLoss}" /> 
       </StackPanel> 
      </DataTemplate> 
     </ListBox.ItemTemplate> 
    </ListBox> 

我有一些C#代码来填充它:

var info = new List<StockInfo>(); 
    info.Add(new StockInfo { Ticker = "C", Price = "5.18", GainLoss = "10" }); 
    info.Add(new StockInfo { Ticker = "WEN", Price = "4.18", GainLoss = "12" }); 
    info.Add(new StockInfo { Ticker = "CBB", Price = "5.22", GainLoss = "210" }); 
    detailsList.ItemsSource = info; 

而这一切工作正常。我的问题是:如何动态地(在运行时)向列表框中添加/删除附加的“文本块”?另外,如何将列标题放在列表框中?

回答

2

你实际上想要的是一个网格,而不是一个列表框。我经历了在Windows Phone 7中显示网格的类似痛苦,好消息是您可以使用SilverlightToolkit的DataGrid,坏消息是它没有针对手机进行优化。您需要查看SilverlightToolkit源代码,复制网格样式并将其修改为原生手机。

这里是my answer来回我的问题从某个时候回来关于datagrid。