I'm experimenting with Shell. In this example I have some pages set to ContentTemplate:
<FlyoutItem Route="main"
Title="Main"
FlyoutDisplayOptions="AsMultipleItems">
<Tab Title="Animals"
Route="animals"
Icon="tab_1.png">
<ShellContent Route="tags"
Style="{StaticResource MainShell}"
Title="Topics"
Icon="tab_a.png"
ContentTemplate="{DataTemplate prayerviews:TopicPage}" />
<ShellContent Route="groups"
Style="{StaticResource MainShell}"
Title="All"
Icon="tab_s.png"
ContentTemplate="{DataTemplate prayerviews:AllPage}" />
</Tab>
Both pages TopicPage and AllPage have Appearing events handled, but only TopicPage's gets fired.
How can I be notified that AllPage is showing so that I can load the expensive Model ?
Appearing is fired:
public TopicPage()
{
InitializeComponent();
BindingContext = App.IoCContainer.GetInstance<TopicViewModel>();
Appearing += async (sender, args) =>
{
await Refresh();
base.OnAppearing();
};
}
Appearing is NOT firing:
public AllPage()
{
InitializeComponent();
BindingContext = App.IoCContainer.GetInstance<AllViewModel>();
Appearing += async (sender, args) =>
{
await Refresh();
base.OnAppearing();
};
}