WP树状列表导航



在WP应用程序中,我有一个树状列表,用户可以在其中看到类别和项目。

如果用户单击item ->,我将导航到item页面。

但是如果用户想要更深入并单击类别->我需要向他显示内部类别和项目,所以这将是伟大的,如果它将有可能再次打开实例这个页面并显示内部类别和项目,因为它有完全相同的逻辑

我知道,我不能运行一个Page的多个实例。

我可以在这个页面的当前实例上显示内部类别,只是改变列表框的内容,但是用这种方式我有2个问题:

  1. 在后退按钮下,我需要显示以前的列表框,所以我需要将所有以前打开的列表框存储在Stack
  2. 我想为用户显示页面导航动画(后退键也是),他会看到他进入更深的树列表或他回到以前的状态。

也许你们中的一些人已经做了同样的事情,你能给我一些建议吗?

同一个页面可以有多个实例

假设每个类别都有一个唯一的ID,您只需导航到页面并在Query string中提供ID参数。为最顶层的数据保留一个ID(例如0)。

那么,你的分类页面最初将被命名为

NavigationService.Navigate("MyCategoriesPage?categoryId=0");
OnNavigatedTo方法中的

解析categoryId并根据Id从后端或存储读取数据。

当用户点击一个类别时,你根据类别id导航到同一页面,例如:

NavigationService.Navigate("MyCategoriesPage?categoryId=12");

Windows Phone保持后退堆栈,因此后退按钮上的导航将被处理。你应该记住的唯一一件事是,如果用户停用和重新激活应用程序,应用程序可能会被删除。在这种情况下,列表框数据将不会被保留。要处理它,请确保遵循OnNavigatedTo方法中的标准模式:

if (!_isInitialized)
{
   int categoryId = int.Parse(NavigationContext.QueryString["categoryId"]);
   ReadData(categoryId);
   _isInitialized = true;
} 

相关内容

  • 没有找到相关文章

最新更新