以编程方式创建数据透视表项并动态添加堆栈面板?

时间:2012-12-07 13:26:12

标签: c# windows windows-phone-7 pivot

我的Windows Phone 7应用程序中有一个Pivot控件,并希望动态添加包含PivotItem中列出的其他控件的StackPanel。我怎么能以程序方式做到这一点?

我尝试添加到PivotItem的children,但我的PivotItem中不存在子项。

void ws_getMenuCompleted(object sender, getMenuCompletedEventArgs e)
{
    PivotItem pvt;
    for (int i = 0; i < e.Result.menu.Length; i++)
    {
        pvt = new PivotItem();
        pvt.Header = e.Result.menu[i].name.ToLower();

        StackPanel panel = new StackPanel(); 
        // ... UI creation in StackPanel removed...

        pvt.Children = panel; // << This doesn't work.

        pvtRestaurante.Items.Add(pvt);
        pvt = null;
    }
}

1 个答案:

答案 0 :(得分:5)

由于PivotItem派生自ContentControl,您应该分配PivotItem的内容属性。 更多信息http://msdn.microsoft.com/en-US/library/windowsphone/develop/microsoft.phone.controls.pivotitem%28v=vs.105%29.aspx

void ws_getMenuCompleted(object sender, getMenuCompletedEventArgs e)
        {
            PivotItem pvt;
            for (int i = 0; i < e.Result.menu.Length; i++)
            {
                pvt = new PivotItem();
                pvt.Header = e.Result.menu[i].name.ToLower();
                var stack = new StackPanel();
                pvt.Content = stack;
                pvtRestaurante.Items.Add(pvt);
                pvt = null;
            }
}