IRegionMemberLifetime GetViewOrDataContextLifeTime(object view) { return(view switch { IRegionMemberLifetime regionLifetime => regionLifetime, FrameworkElement fe => fe.DataContext as IRegionMemberLifetime, _ => null });
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); }