спасибо за вашу помощь заранее. Я работаю над приложением Forms Shell уже несколько дней. Мой пользовательский интерфейс управляется данными во многих аспектах, и я пытаюсь выполнить sh страницу, которая показывает несколько вкладок на тобе в зависимости от имеющейся модели.
Другими словами, я пытаюсь выполнить sh тот же макет, что и в демонстрационном приложении Shells:
<FlyoutItem Route="animals"
Title="Animals"
FlyoutDisplayOptions="AsSingleItem">
<Tab Title="Domestic"
Route="domestic"
Icon="paw.png">
<ShellContent Route="cats"
Style="{StaticResource DomesticShell}"
Title="Cats"
Icon="cat.png"
ContentTemplate="{DataTemplate views:CatsPage}" />
<ShellContent Route="dogs"
Style="{StaticResource DomesticShell}"
Title="Dogs"
Icon="dog.png"
ContentTemplate="{DataTemplate views:DogsPage}" />
</Tab>
</FlyoutItem>
Но начиная с существующей ссылки в FlyoutMenu. Как и уровень на вкладке «Domesti c» выше, который, когда Navigatet создает эти две или более страницы с верхним касанием оболочки.
Я знаю, что мог бы использовать TappedPage в качестве ShellContent, но TappedPages получат стиль немного по-другому, мне было интересно, смогу ли я выполнить sh это с "нативными" функциями оболочки.
Я уже пробовал что-то вроде:
ShellSection tab1 = new ShellSection
{
Title = "Tab1"
};
tab1.Items.Add(new ShellContent() { Title = "Test1", Content = new ContentPage() { Title = "Test1" } });
tab1.Items.Add(new ShellContent() { Title = "Test2", Content = new ContentPage() { Title = "Test2" } });
var current = AppShell.Current.CurrentItem;
current.Items.Add(tab1);
, но это также добавляет еще одну запись в нижней части панель вкладок и всплывающее меню, а также то, что мне не нужно.
Чтобы быть более понятным, я попытаюсь объяснить это с помощью скриншотов макетов.
Предположим, у нас есть следующее всплывающее меню, где Domesti c запись.
Эта запись Domesti c ведет на страницу, на которой viewmodel предоставляет набор данных, которые должны отображаться на вкладках.
Как вы видите, на этих страницах есть ссылка в виде заголовка, которая открывает всплывающее окно для изменения выбранного элемента и должна обновлять / изменять отображаемые данные. к экзамену Чтобы иметь три вкладки.
Надеюсь, теперь все понятно.
РЕДАКТИРОВАТЬ:
Комментарии до сих пор принес мне еще один шаг вперед. С помощью следующего кода я выполняю sh, чтобы получить нужные верхние вкладки.
var current = AppShell.Current.CurrentItem;
var currentSection = current.CurrentItem;
//currentSection.Items.Clear();
currentSection.Items.Add(new CatsPage() { Title = "Tab1"} ); ;
currentSection.Items.Add(new ShellContent() { Title = "Tab2", Content = new CatsPage() });
Но это все еще не идеально - на добавленных страницах нижняя панель вкладок скрыта, есть ли какое-нибудь решение для этого?
У кого-нибудь есть совет?