コード例 #1
0
        internal static T FindParentOfType <T>(this Element element)
        {
            var navPage = element
                          .GetParentsPath()
                          .OfType <T>()
                          .FirstOrDefault();

            return(navPage);
        }
コード例 #2
0
        internal static IMauiContext FindMauiContextOnParent(this Element element)
        {
            var navPage = element
                          .GetParentsPath()
                          .OfType <IView>()
                          .Where(x => x.Handler?.MauiContext != null)
                          .FirstOrDefault();

            return(navPage?.Handler?.MauiContext);
        }
コード例 #3
0
        internal static IMauiContext?FindMauiContext(this Element element)
        {
            if (element is Maui.IElement fe && fe.Handler?.MauiContext != null)
            {
                return(fe.Handler.MauiContext);
            }

            foreach (var parent in element.GetParentsPath())
            {
                if (parent is Maui.IElement parentView && parentView.Handler?.MauiContext != null)
                {
                    return(parentView.Handler.MauiContext);
                }
            }

            return(default);
コード例 #4
0
ファイル: ViewExtensions.cs プロジェクト: Glepooek/maui
        internal static IMauiContext?FindMauiContext(this Element element, bool fallbackToAppMauiContext = false)
        {
            if (element is Maui.IElement fe && fe.Handler?.MauiContext != null)
            {
                return(fe.Handler.MauiContext);
            }

            foreach (var parent in element.GetParentsPath())
            {
                if (parent is Maui.IElement parentView && parentView.Handler?.MauiContext != null)
                {
                    return(parentView.Handler.MauiContext);
                }
            }

            return(fallbackToAppMauiContext ? Application.Current?.FindMauiContext() : default);