2012-04-14 5 views
3

это моя самая первая программа в WP7, поэтому у меня есть некоторые проблемы.Как динамически заполнять сетку WP7?

Я пытаюсь заполнить сетку списком объектов, которые были куплены другим методом. Вот то, что я сделал до сих пор:

public partial class MainPage : PhoneApplicationPage 
{ 
    private List<Row> lsResult; 
    private Grid myGrid = new Grid(); 
    private int i = 0; 

    // Constructor 
    public MainPage() 
    { 
     InitializeComponent(); 

     ColumnDefinition colData = new ColumnDefinition(); 
     ColumnDefinition colOcorrencia = new ColumnDefinition(); 
     ColumnDefinition colSituacao = new ColumnDefinition(); 
     myGrid.ColumnDefinitions.Add(colData); 
     myGrid.ColumnDefinitions.Add(colOcorrencia); 
     myGrid.ColumnDefinitions.Add(colSituacao); 
     myGrid.ShowGridLines = true; 
     SolidColorBrush myBrush = new SolidColorBrush(Colors.White); 
     myGrid.Background = myBrush; 
     gridResult = myGrid; 

    } 

    private void button1_Click(object sender, RoutedEventArgs e) 
    { 
     i = 0; 
     lsResult = null; 
     lsResult = Rastrear.Busca(txtNumber.Text); 
     foreach (Row r in lsResult) 
     { 
      RowDefinition rNewRow = new RowDefinition(); 
      myGrid.RowDefinitions.Add(rNewRow); 

      TextBlock lblData = new TextBlock(); 
      lblData.Text = r.Data.ToString(); 
      lblData.HorizontalAlignment = HorizontalAlignment.Center; 
      lblData.VerticalAlignment = VerticalAlignment.Center; 
      Grid.SetColumnSpan(lblData, 1); 
      Grid.SetRow(lblData, i); 

      TextBlock lblOcorrencia = new TextBlock(); 
      lblOcorrencia.Text = r.Ocorrencia.ToString() ; 
      Grid.SetColumnSpan(lblOcorrencia, 2); 
      Grid.SetRow(lblOcorrencia, i); 

      TextBlock lblSituacao = new TextBlock(); 
      lblSituacao.Text = r.Situacao.ToString(); 
      Grid.SetColumnSpan(lblSituacao, 3); 
      Grid.SetRow(lblSituacao, i); 
      i++; 

      myGrid.Children.Add(lblData); 
      myGrid.Children.Add(lblOcorrencia); 
      myGrid.Children.Add(lblSituacao); 
     } 
     gridResult = myGrid; 

    } 
} 

Метод Buscar() возвращает список, как и должно быть, но когда я нажимаю на кнопку она не делает ничего, не даже краску белого на конструкторе происходит на самом деле.

заранее спасибо

ответ

1

Вы делаете некоторые довольно тенистые вещи в вашем коде позади, что я привык видеть и должно быть сделано в XAML. Изменение этого

gridResult = myGrid; 

в

gridResult.Children.Add(myGrid); 

Я не думаю, что вы можете просто изменить ссылки статических элементов пользовательского интерфейса, как это.

+0

Это сработало, спасибо! Но есть еще одна проблема: страница не заполняется при нажатии кнопки. – Markissimo

+2

Работало, но страница не заполняется:)? Попробуйте добавить длины и ширину, чтобы все ваши определения столбцов и строк eq. rNewRow.Height = новая GridLength (100); colData.Width = new GridLength (100); – Dante

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