in AMP/Views/NavAwarePage.cs [46:71]
private async Task InitializeChildrenAsync(FrameworkElement uiElement, object state, object parentDataContext = null)
{
if (uiElement is null)
return;
if (uiElement.DataContext != null && !uiElement.DataContext.Equals(parentDataContext))
await InitializeViewModels(uiElement, state);
if (uiElement is Panel panel)
{
foreach (var element in panel.Children)
{
await InitializeChildrenAsync(element as FrameworkElement, state, uiElement.DataContext);
}
}
else if (uiElement is UserControl userControl)
{
await InitializeChildrenAsync(userControl.Content as FrameworkElement, state, uiElement.DataContext);
}
else if (uiElement is ContentControl contentControl)
{
var uiElementAsContentControl = (ContentControl)uiElement;
await InitializeChildrenAsync(contentControl.Content as FrameworkElement, state, uiElement.DataContext);
}
}