私のMainPage.xamlは、3つのPivotItemを持つピボットページです。現在、MainPageコンストラクターの各PivotItemに必要なものをすべてロードしています。不要なものがたくさん読み込まれるので、これは悪いことです。
こことここを読むと、最初のPivotItemのみをロードし、ロード後に残りのアイテムをロードすることがわかります。具体的には :
起動時にすべてをロードするのではなく、ピボットコントロールコンテンツをオンデマンドでロードすることにより、ピボットアプリケーションのパフォーマンスを向上させます。1つの解決策は、各PivotItemコントロールからコンテンツを取得し、UserControlsに変換することです。その後、ルートピボットコントロールで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();
}
}
createクラスPageXControlを使用する必要がありますか?メインページクラスからなんとか継承する必要がありますか?
各PivotItemコントロールからコンテンツを取得してUserControlsに変換するにはどうすればよいですか?
ありがとう