Мое намерение состоит в том, чтобы, когда пользователь нажимает кнопку, чтобы перейти на другую страницу, он увидит прогресс, пока другая страница не будет полностью загружена.Отображение прогрессирования во время навигации между страницами
Я нашел много учебников по теме, но все они используют код позади. Я хочу иметь возможность использовать код (по возможности). В настоящее время я использую MvvmLight с ViewModelLocater.
Я уже сделал фиктивную сетку в своих представлениях, которая может отображать Progressring, и я привязал ее активное и видимое свойство к моим режимам просмотра.
<Grid Background="Transparent" Visibility="{Binding LoadCircleVisibility}" Height="{Binding HeigthScreen}" Width="{Binding WidthScreen}" >
<ProgressRing Height="50" Width="50" IsActive="{Binding ProgressRingActive}" Visibility="{Binding ProgressRingVisibility}"></ProgressRing>
</Grid>
Я могу Allready показать это, когда я получаю данные из службы WCF, например, но не тогда, когда пользователь переходит на другую страницу.
На данный момент я пытаюсь сделать это с помощью сообщений, но я не уверен, где я должен поставить сообщение, которое сделает мой прогресс видимым.
Мое сообщение всегда будет проходить через этот метод, чтобы установить правильные значения для progressring:
private void ProggressBarVisible(bool visible)
{
if (visible)
{
ProgressRingVisibility = Visibility.Visible;
LoadCircleVisibility = Visibility.Visible;
}
else
{
ProgressRingVisibility = Visibility.Collapsed;
LoadCircleVisibility = Visibility.Collapsed;
}
ProgressRingActive = visible;
}
Но когда я хочу, чтобы перейти на другую страницу нет progressring.
Итак, вопрос в том, как я могу показать прогрессирование, в то время как mvvmlight загружает новую страницу.
Edit: частичное решение:
Причина моя навигация была медленнее, и заперла uithread потому, что он должен был Buid всей страницы. Я изменил это, убедившись, что все методы и логика являются ut в другом потоке, это гарантирует, что мой uithread продолжается немедленно, и я могу отображать loadcircle на моей второй странице, пока он выполняет логику и методы.
Да, я прочитал что-то похожее на это, но я не узнал, как я смог бы достичь этого, не используя код, и viewmodellocater, чтобы «получить» мои представления – Landvis