Как отключить PivotItem от загрузки, пока я не заберу его? (UWP C #) - PullRequest
1 голос
/ 15 апреля 2019

Мне нужно использовать Pivot, но без загрузки всех страниц во всех PivotItems.Необходимо загружать / пересылать каждую страницу в PivotItem, только когда я выбираю этот конкретный PivotItem.

Я однажды попробовал все функциональные возможности, которые предоставляет Xaml, выполнять действия только тогда, когда PivotItem нажата, но не выполнена.

<Pivot x:Name="XmlConfigPivot">
            <PivotItem Header="Layout">
                <Frame>
                    <xml_config:Layout_Tab/>
                </Frame>
            </PivotItem>
            <PivotItem Header="stub_tab">
                <Frame>
                    <xml_config:Stub_Tab/>
                </Frame>
            </PivotItem>
</Pivot>

Как сделать "xml_config: Layout_Tab"загрузить только когда я выбираю это PivotItem?

1 Ответ

2 голосов
/ 16 апреля 2019

Как сказал @Bruno, вы можете напрямую загружать каждую страницу путем программирования.Вам просто нужно зарегистрировать событие SelectionChanged для Pivot и добавить некоторую логику кода для его достижения.

Ниже приведен простой пример кода для справки:

<Pivot x:Name="XmlConfigPivot" SelectionChanged="XmlConfigPivot_SelectionChanged">
        <PivotItem Header="Layout">
            <Frame>
            </Frame>
        </PivotItem>
        <PivotItem Header="stub_tab">
            <Frame>
            </Frame>
        </PivotItem>
</Pivot>
private void XmlConfigPivot_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    PivotItem item = ((sender as Pivot).SelectedItem) as PivotItem;
    string header = item.Header.ToString();
    Frame frame = item.Content as Frame;
    switch (header)
    {
            case "Layout": frame?.Navigate(typeof(page1)); break;
            case "stub_tab": frame?.Navigate(typeof(page2)); break;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...