创建动态页面XAML

时间:2014-01-21 09:17:23

标签: xaml windows-phone-8

我是WP8 app dev的新手。

情景:

  • WP应用程序客户端和服务器

  • 应用程序将显示从服务器

  • 收到的内容
  • 来自服务器的响应有两种类型:列表项页面或详细页面。

问题:

  • 当服务器响应列表时,客户端应用必须使用来自服务器的数据创建动态列表页面

  • 当用户单击列表中的项目时,服务器可能会响应列表(续)或此项目的详细信息(用户不知道列表或详细信息)。

请为此案例支持导航后退推荐解决方案? (仅使用来自服务器的对象参数响应创建页面)

首页 - >清单 - >列表 - >列表 - >列表 - >详情页面。

或:开始页面 - >清单 - >详情页面。

3 个答案:

答案 0 :(得分:0)

你为什么不这样使用:

有2页,第一个用于列表视图,第二个用于详细信息视图。 基于服务器响应将数据传递到相应的页面,无论您想要什么。您不能动态创建页面并使用它们。

答案 1 :(得分:0)

你的问题不清楚,但我会尽力解决这种模棱两可的问题。如果来自服务器的数据只是 - 数据,那么您不需要动态创建XAML,您应该使用LongListSelector来显示任意数据列表。当未指定数据量但结构相同时就是这种情况。有关详细信息,请参阅MSDN link

当您从服务器获取详细信息时,只需使用数据绑定来填充页面上的预定义控件。您始终可以隐藏未使用的控件。

如果来自服务器的数据以无法预先确定的方式更改 UI,例如每个列表看起来完全不同,详细信息页面也是可变的,您应该动态创建XAML。只需创建空页面并在构造函数中添加控件。例如:

// ListPage.xaml
<ScrollViewer>
    <StackPanel x:Name="panel">
    </StackPanel>
</ScrollViewer>

// ListPage.xaml.cs
public ListPage()
{
    InitializeComponent();

    foreach(var data in somesource)
    {
        if (...)
            panel.Children.Add(new TextBlock());
        else
            panel.Children.Add(new TextBox());
        // ...
    }
}

答案 2 :(得分:0)

不需要创建动态xaml页面。创建三个页面 1.开始页面 2.列表页面 3.Detail Page

在列表页面中使用ListBox控件并将列表框与服务器数据绑定。关于列表框控件的Hereenter link description here很好的解释