Навигация по оболочке в .NET MAUI на страницу с вкладками
У меня есть приложение .NET MAUI. На главной странице у меня есть список элементов, и когда я выбираю один из них, я хочу перейти к другому представлению, в котором есть вкладки («Сводка» и «Подробности»), связанные с выбранным элементом. Мне было интересно, как этого добиться.
Сначала я думал зарегистрировать маршрут на страницу с вкладками, используяRouting.RegisterRoute
, но затем я прочитал документацию TabbedPage , где говорится, что «TabbedPage несовместим с приложениями .NET MAUI Shell, и если вы попытаетесь использовать TabbedPage в приложении Shell, будет выдано исключение».
1 ответ
Вы не можете использовать страницы навигации вместе с Shell. Вы выбираете то или другое.
Итак, если я предполагаю, что вы хотите продолжать использовать Shell и сохранить свою идею для вкладок, вам нужно сделать две вещи.
Зарегистрируйте глобальный маршрут и перейдите к нему (Shell.xaml.cs), передав данные вашего объекта в качестве параметра.
Реализуйте элемент управления вкладками.
Первая часть простая, вторая часть сложная. Вы всегда можете попробовать сторонние элементы управления (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 в качестве панелей.)