Prism 中 IRegionMemberLifetime接口的用法

    //
    // 摘要:
    //实现时,允许将实例放置在IRegion中,该IRegion使用RegionMemberLifetimeBehavior表示当它从激活状态转换为非激活状态时应该删除它。
    public interface IRegionMemberLifetime
    {
        //
        // 摘要:
        //获取一个值,该值指示该实例在停用时是否维持生存。
        bool KeepAlive { get; }
    }

实现此接口的页面类在导航跳转到其他页面时会根据KeepAlive属性的值进行判断是否销毁本页面。

在view之间跳转的时候,viewA 和viewB是被缓存的,但是有时候,我们跳转到B的时候想要销毁A,怎么来做呢?

在viewA 或ViewAViewModel上实现IRegionMemberLifetime接口,并将KeepAlive属性的值设置为false。

  public class ViewAViewModel : BindableBase, INavigationAware, IRegionMemberLifetime
    {
        public ViewAViewModel()
        {

        }
        //Gets a value indicating whether this instance should be kept-alive upon deactivation.
        public bool KeepAlive
        {
            get
            {
                return true;
            }
        }

        public bool IsNavigationTarget(NavigationContext navigationContext)
        {
            return false;
        }

        public void OnNavigatedFrom(NavigationContext navigationContext)
        {
            
        }

        public void OnNavigatedTo(NavigationContext navigationContext)
        {
            
        }
    }

猜你喜欢

转载自blog.csdn.net/lnc2003/article/details/83540481