2014-07-14 2 views
1

Я разрабатываю приложение для Windows Phone 8 и использую parse.com в качестве моих внутренних служб. Я пытаюсь загрузить все строки из моего объекта parse.com (таблица данных) в динамические текстовые блоки. Я добавляю текстовый блок нажатием кнопки, который будет отображать данные с сайта parse.com. но моя проблема в том, что у меня есть 2 строки, исходящие от parse.com, и мои 2 динамически созданных текстовых блока сидят в одном месте друг с другом. но я хочу, чтобы создать новый TextBlock для каждой строки, исходя из parse.comПолучение нескольких строк от parse.com в динамические текстовые блоки в Windows Phone 8 app

это мой XAML код страницы

<!--ContentPanel - place additional content here--> 
    <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0"> 
     <ItemsControl x:Name="ic"> 
      <ItemsControl.ItemTemplate> 
       <DataTemplate> 
        <Grid> 
         <Grid.ColumnDefinitions> 
          <ColumnDefinition /> 
          <ColumnDefinition /> 
         </Grid.ColumnDefinitions> 
         <!--<TextBlock x:Name="TextBlock" Text="{Binding TextBlock}" FontSize="20" />--> 
         <!--<TextBlock Text="{Binding times}" FontSize="20" Grid.Column="1" />--> 
        </Grid> 
       </DataTemplate> 
      </ItemsControl.ItemTemplate> 
     </ItemsControl> 
     <Button x:Name="BtnRefresh" Content="Refresh" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="316,-101,0,0" Width="140" Click="BtnRefresh_Click"/> 
    </Grid> 
</Grid> 

это мой динамический код, добавив TextBlocks с моими данными, которые наступающие из parse.com

public async void BtnRefresh_Click(object sender, RoutedEventArgs e) 
    { 
     var query = from users in ParseObject.GetQuery("Users") 
        orderby users.CreatedAt ascending 
        select users ; 
     IEnumerable<ParseObject> results = await query.FindAsync(); 

     foreach (var users in results) 
     { 
      TextBlock TextBlock = new TextBlock(); 

      var username = users.Get<string>("username"); 


       TextBlock.Text = "User: " + username.ToString(); 

       ContentPanel.Children.Add(TextBlock); 

     } 

Я хочу, чтобы этот код, чтобы показать несколько TextBlocks по строкам я получаю от parse.com

Спасибо.

ответ

0

Если вы хотите добавить их динамически в код позади, вы можете попробовать использовать scrollviewer и стекную панель, а затем динамически добавлять их в stackPanel. Итак:

<ScrollViewer> 
    <StackPanel x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0"> 
     <StackPanel x:Name="ContentStack" /> 
     <Button x:Name="BtnRefresh" Content="Refresh" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="316,-101,0,0" Width="140" Click="BtnRefresh_Click"/> 
    </StackPanel> 
</ScrollViewer> 

Затем в коде позади:

public async void BtnRefresh_Click(object sender, RoutedEventArgs e) 
{ 
    var query = from users in ParseObject.GetQuery("Users") 
       orderby users.CreatedAt ascending 
       select users ; 
    IEnumerable<ParseObject> results = await query.FindAsync(); 

    foreach (var users in results) 
    { 
     TextBlock TextBlock = new TextBlock(); 

     var username = users.Get<string>("username"); 


      TextBlock.Text = "User: " + username.ToString(); 

      ContentStack.Children.Add(TextBlock); 

    } 
+0

Thnx много для ответа. Я на самом деле получил это в тот же день, когда я разместил это. Я использовал ContentPanel вместо StackPanel. Он работал после использования StackPanel. – sajidalimd

Смежные вопросы