c# - 如何在 WP7 上动态填充网格?

标签 c# windows-phone-7 grid

这是我在 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() 方法按其应有的方式返回列表,但是当我单击按钮时它什么也没做,甚至在构造函数上绘制成白色也没有实际发生。

提前致谢

最佳答案

你在你的代码背后做了一些非常阴暗的事情,我已经习惯了看到并且应该在 xaml 中完成。改变这个

gridResult = myGrid;

gridResult.Children.Add(myGrid);

我认为您不能像那样只更改静态 UI 元素的引用。

关于c# - 如何在 WP7 上动态填充网格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10157672/

相关文章:

c# - 这个代码是什么意思?

c# - XNA 按字符串设置颜色

c# - 使用 WebClient 的 wp7 REST 服务调用超时异常

windows-phone-7 - WP7 - 以编程方式更改主屏幕背景

algorithm - 将二维点映射到固定网格

html - Bulma 在台式机、平板电脑或移动设备上使用不同的列尺寸

c# - 嵌套循环不进入每个元素c#

c# - 如何从linq中的多个日期列中获取最小值?

silverlight - WebClient.UploadStringAsync 未正确将数据 POST 到服务器

grid - 在 Magento 中创建订单项网格