예제 #1
0
 IRegionMemberLifetime GetViewOrDataContextLifeTime(object view)
 {
     return(view switch
     {
         IRegionMemberLifetime regionLifetime => regionLifetime,
         FrameworkElement fe => fe.DataContext as IRegionMemberLifetime,
         _ => null
     });
예제 #2
0
        private static bool ShouldKeepAlive(object inactiveView)
        {
            IRegionMemberLifetime lifetime = GetItemOrContextLifetime(inactiveView);

            if (lifetime != null)
            {
                return(lifetime.KeepAlive);
            }
            RegionMemberLifetimeAttribute lifetimeAttribute = GetItemOrContextLifetimeAttribute(inactiveView);

            if (lifetimeAttribute != null)
            {
                return(lifetimeAttribute.KeepAlive);
            }
            return(true);
        }
        private static bool ShouldKeepAlive(object inactiveView)
        {
            IRegionMemberLifetime lifetime = MvvmHelpers.GetImplementerFromViewOrViewModel <IRegionMemberLifetime>(inactiveView);

            if (lifetime != null)
            {
                return(lifetime.KeepAlive);
            }

            RegionMemberLifetimeAttribute lifetimeAttribute = GetItemOrContextLifetimeAttribute(inactiveView);

            if (lifetimeAttribute != null)
            {
                return(lifetimeAttribute.KeepAlive);
            }

            return(true);
        }