//
// 摘要:
//实现时,允许将实例放置在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)
{
}
}