UWP C # Переключение содержимого кадра, проблемы и сбои - PullRequest
0 голосов
/ 01 ноября 2018

Я боролся с этой настройкой пару дней и нашел какое-то решение, но думаю, что это не так, как оно должно работать.

Вот мои настройки страницы xaml:

<Page
    ...
    <SplitView IsPaneOpen="True" DisplayMode="Inline" OpenPaneLength="300">
        <SplitView.Pane>
            <Grid>
                <ToggleButton x:Name="Edit" IsEnabled="False" Checked="Edit_Checked" Unchecked="Edit_Unchecked"/>
            </Grid>
        </SplitView.Pane>
        <Frame x:Name="RightFrame">

        </Frame>
    </SplitView>
</Page>

Код для кнопки переключения:

private void Edit_Checked(object sender, RoutedEventArgs e)
{
    RightFrame.Navigate(typeof(SubPage1));
}

private void Edit_Unchecked(object sender, RoutedEventArgs e)
{
    RightFrame.Navigate(typeof(SubPage2));
}

Таким образом, в основном кнопка переключения переключает содержимое splitview. Подстраницы - это просто пустые страницы. Проблема в том, что приложение происходит сбой при навигации. Я заметил, когда ставлю это перед вызовом навигации:

RightFrame.Content = null;
Thread.Sleep(1000);

Тогда все работает нормально. Поэтому мне нужно очистить содержимое фрейма и дождаться его завершения, я думаю. Но я думаю, что это должно быть сделано автоматически. Может кто-нибудь объяснить, что я делаю здесь неправильно и как это следует делать?

1 Ответ

0 голосов
/ 02 ноября 2018

Пожалуйста, проверьте ваш код в SubPage1 и SubPage2, которые могут вызывать сбои, вы можете очистить ресурсы, когда страница будет выгружена.

В качестве альтернативы, вы можете попробовать код ниже:

private void Edit_Checked(object sender, RoutedEventArgs e)
{
   RightFrame.Content = new SubPage1();
}

private void Edit_Unchecked(object sender, RoutedEventArgs e)
{
   RightFrame.Content = new SubPage2();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...