Я новичок ie в формах Xamarin.
Я хочу включить ShellSection
(вкладку) в моем приложении после завершения указанного этапа c.
В настоящее время я использую класс AppShell
для управления элементами навигации (в настоящее время PageOneTab не включен) -
<?xml version="1.0" encoding="utf-8" ?>
<Shell xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:MyApp="clr-namespace:MyApp"
x:Class="MyApp.AppShell"
FlyoutBehavior="Disabled"
Navigating="Handle_Navigating">
<ShellItem>
<ShellSection x:Name="HomeTab" Icon="home">
<ShellContent>
<MyApp:HomePage/>
</ShellContent>
</ShellSection>
<ShellSection x:Name="PageOneTab" x:FieldModifier="public" IsEnabled="False">
<ShellContent>
<MyApp:PageOnePage/>
</ShellContent>
</ShellSection>
</ShellItem>
</Shell>
В HomePage
ContentPage у меня есть нажатие кнопки -
public HomePage()
{
InitializeComponent();
}
private async void HomePageButton_Clicked(object sender, EventArgs e)
{
await Navigation.PushAsync(new HandlingPage());
}
И в моей HandlingPage
ContentPage, основанной на результате, я хочу включить ShellSection
PageOneTab
.
public HandlingPage()
{
InitializeComponent();
// do stuff....
// then set -
StatusTab.IsEnabled = true;
}
Я думал, добавив x:FieldModifier="public"
к элементу управления, к которому я смогу получить доступ он из HandlingPage
, однако он недоступен, фактически единственное место, где я могу получить доступ к элементу управления в настоящее время, я считаю, находится в коде AppShell.xaml.cs
, выполнив StatusTab.IsEnabled = true;
. Я считаю, что это может быть до BindingContext
однако не уверен.