2012-04-14 14 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で行う必要があり、その背後にあるコードの中でかなり怪しげなものをやっています。私はあなただけのような静的なUI要素の参照を変更することができるとは思わないこの

gridResult = myGrid; 

gridResult.Children.Add(myGrid); 

に変更します。

+0

ありがとう!しかし、別の問題があります。ボタンを押したときにページにデータが表示されません。 – Markissimo

+2

それはうまくいったが、ページにデータが入力されない:)長さと幅を追加して、すべての列と行の定義eqを実行してみてください。 rNewRow.Height =新しいGridLength(100); colData.Width = new GridLength(100); – Dante

関連する問題