动态添加列到列表框

时间:2010-05-02 15:42:55

标签: silverlight listbox windows-phone-7

我是Windows Phone 7开发的新手,几乎和Silverlight一样新。我有一个带有DataTemplate,StackPanel和TextBlocks的ListBox,如下所示:

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

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

1 个答案:

答案 0 :(得分:2)

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

以下是关于数据网格的问题的my answer