2010-05-02 6 views
0

Je suis tout nouveau dans le développement de Windows Phone 7, et presque aussi nouveau pour Silverlight. J'ai un ListBox avec un DataTemplate, StackPanel et TextBlocks comme ceci:Ajouter dynamiquement des colonnes à une liste

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

J'ai un code C# pour le remplir:

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; 

Et que tout fonctionne bien. Ma question est la suivante: comment ajouter/supprimer des 'textblocks' supplémentaires dans la listbox dynamiquement (à l'exécution)? En outre, comment puis-je mettre en-têtes de colonne sur la zone de liste?

Répondre

2

Ce que vous voulez réellement est une grille, pas une liste. Je suis passé par la même peine d'avoir une grille à afficher dans Windows Phone 7 et les bonnes nouvelles sont que vous pouvez utiliser DataGrid de SilverlightToolkit, la mauvaise nouvelle est que ce n'est pas optimisé pour le téléphone. Vous devrez rechercher la source SilverlightToolkit, copier le style de la grille et la modifier pour qu'elle soit native sur le téléphone.

Voici ma réponse de datagrid à la question my answer.

Questions connexes