Сбой навигации MAUI Shell (случайно?) (Windows)C#

Место общения программистов C#
Ответить
Anonymous
 Сбой навигации MAUI Shell (случайно?) (Windows)

Сообщение Anonymous »

Я создал простой проект MAUI для устранения неполадок встроенной навигации MAUI AppShell.
У меня есть MainPage (привязанный к MainPageViewModel) с CollectionView ItemViewModel.
Я добавил в XAML поведение жеста, чтобы реагировать на двойное нажатие на каждую из представленных ItemViewModel, которое запускает переход на мою вторую страницу: SelectPage< /code>.
Я выполнил маршрутизацию навигации относительным способом, поэтому могу вернуться назад с помощью встроенной кнопки возврата на панели навигации.
Я тестирую эта навигация от перемещения вперед и назад между двумя моими страницами, пока она не вспыхнет с необработанным исключением Microsoft.UI.Xaml.Controls.Frame.NavigationFailed. в сгенерированном файле App.g.I.cs.
Это может произойти при любом способе навигации (либо при переходе на вторую страницу, либо при возврате на главную).
Это исключение возникает через некоторое время, но без какой-либо особой закономерности (может быть Например, 5-й или 13-й раз навигации).
(ОБРАТИТЕ ВНИМАНИЕ, что при использовании ScreenToGif для записи этой проблемы на видео до сих пор всегда происходит сбой при второй навигации ?!)
Вторая ошибка отладчика в App.g.i.cs связана с исключением System.Runtime.InteropServices.COMException перед закрытием приложения.
Вот мой простой проект на GitHub для проверки кода.
А вот мое видео, иллюстрирующее эту проблему.
Трассировка стека показана на конец :

Код: Выделить всё

at WinRT.ExceptionHelpers.g__Throw|38_0(Int32 hr)
at ABI.Microsoft.UI.Xaml.Controls.IFrameMethods.Navigate(IObjectReference _obj, Type sourcePageType, Object parameter, NavigationTransitionInfo infoOverride)
at Microsoft.Maui.Platform.StackNavigationManager.NavigateTo(NavigationRequest args)
at Microsoft.Maui.CommandMapper.InvokeCore(String key, IElementHandler viewHandler, IElement virtualView, Object args)
at Microsoft.Maui.Controls.Handlers.ShellSectionHandler.SyncNavigationStack(Boolean animated, NavigationRequestedEventArgs e)
at Microsoft.Maui.Controls.Handlers.ShellSectionHandler.OnNavigationRequested(Object sender, NavigationRequestedEventArgs e)
at Microsoft.Maui.Controls.ShellSection.InvokeNavigationRequest(NavigationRequestedEventArgs args)
at Microsoft.Maui.Controls.ShellSection.OnPushAsync(Page page, Boolean animated)
at Microsoft.Maui.Controls.ShellSection.PushStackOfPages(List`1 pages, Nullable`1 animate)
at Microsoft.Maui.Controls.ShellSection.GoToAsync(ShellNavigationRequest request, ShellRouteParameters queryData, IServiceProvider services, Nullable`1 animate, Boolean isRelativePopping)
at Microsoft.Maui.Controls.ShellNavigationManager.GoToAsync(ShellNavigationParameters shellNavigationParameters, ShellNavigationRequest navigationRequest)
at TestinMAUIPageNavigationPerf.Sources.ViewModels.ItemViewModel.SelectItem()
Обратите внимание, что когда на моей второй странице нет элемента внутри корня , она, похоже, не аварийно завершает работу, (ну, по крайней мере, в течение долгого времени, которое я тестировал)< /em>.
Но простое добавление простого внутри приводит к повторному сбою.
EDIT Я упростил код, чтобы на MainPage была только кнопка, которая запускает навигацию, и одна метка на странице SelectPage. Это по-прежнему приводит к сбою приложения по одному и тому же сценарию (переход между двумя страницами).
Для справки и вашего любопытства вот видео этой упрощенной версии, которая в конце концов все равно вылетает.< /п>

Подробнее здесь: https://stackoverflow.com/questions/790 ... ly-windows
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»