【发布时间】:2012-04-29 14:40:09
【问题描述】:
我的 MainPage.xaml 是一个具有 3 个 PivotItems 的数据透视页面。目前它正在为 MainPage 构造函数上的每个 PivotItems 加载所有必要的东西。这很糟糕,因为它加载了很多不必要的东西。
阅读 here 和 here 建议我只加载第一个 PivotItem,然后在加载后加载其余项目。具体来说:
通过按需加载 Pivot 控件内容而不是在启动时加载所有内容来提高数据透视应用程序的性能。一种解决方案是从每个 PivotItem 控件中获取内容并将其转换为 UserControl。然后,您可以订阅根枢轴控件上的 LoadingPivotItem 事件。接下来,在事件处理程序中,实例化适当的 UserControl 并将其设置为 PivotItem 内容。
如果我遵循建议:
private void OnLoadingPivotItem(object sender, PivotItemEventArgs e)
{
if (e.Item.Content != null)
{
// Content loaded already
return;
}
Pivot pivot = (Pivot)sender;
if (e.Item == pivot.Items[0])
{
e.Item.Content = new Page1Control();
}
else if (e.Item == pivot.Items[1])
{
e.Item.Content = new Page2Control();
}
else if (e.Item == pivot.Items[2])
{
e.Item.Content = new Page3Control();
}
}
我应该使用创建类 PageXControl 吗?它应该以某种方式从主页类继承吗?
如何从每个 PivotItem 控件中获取内容并转换为 UserControls ?
谢谢
【问题讨论】:
标签: c# windows-phone-7