Навигация по оболочке в .NET MAUI на страницу с вкладками

У меня есть приложение .NET MAUI. На главной странице у меня есть список элементов, и когда я выбираю один из них, я хочу перейти к другому представлению, в котором есть вкладки («Сводка» и «Подробности»), связанные с выбранным элементом. Мне было интересно, как этого добиться.

Сначала я думал зарегистрировать маршрут на страницу с вкладками, используяRouting.RegisterRoute, но затем я прочитал документацию TabbedPage , где говорится, что «TabbedPage несовместим с приложениями .NET MAUI Shell, и если вы попытаетесь использовать TabbedPage в приложении Shell, будет выдано исключение».

1 ответ

Вы не можете использовать страницы навигации вместе с Shell. Вы выбираете то или другое.

Итак, если я предполагаю, что вы хотите продолжать использовать Shell и сохранить свою идею для вкладок, вам нужно сделать две вещи.

  1. Зарегистрируйте глобальный маршрут и перейдите к нему (Shell.xaml.cs), передав данные вашего объекта в качестве параметра.

  2. Реализуйте элемент управления вкладками.

Первая часть простая, вторая часть сложная. Вы всегда можете попробовать сторонние элементы управления (DevExpress, Syncfusion и т. д.).

Или вы можете попробовать реализовать свой собственный. Я рекомендую для начала прочитать это:https://dev.to/davidortinau/making-a-tabbar-or-segmentedcontrol-in-net-maui-54ha .

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

Подводя итог тому, что вы прочитаете: Tab Control — это не что иное, как RadioButton и BindableLayout, работающие вместе.

И если вы увидите источник этих сторонних элементов управления (просто для вдохновения), первое, что вы заметите, это то, что они удивительно похожи друг на друга.

(Вам следует искать TabControl в MAUI, я помню, что публиковались и другие решения. ToolmakerSteve показал ссылку на TabBar, использующую Grid в качестве панелей.)

Другие вопросы по тегам