1

我认为如果您使用 IoC 容器将视图注册为“Singleton”,那么每次导航到它时都会重复使用相同的实例,而将视图注册为“Transient”会在每次导航到它时创建一个新实例。除非我做错了什么,否则我发现 IoC 的“生活方式”没有任何区别,并且它IRegionMemberLifetime.KeepAlive是决定视图是否被重用或每次重新创建的属性。这个对吗?(我使用的是温莎城堡 IoC)。

当 Prism 文档谈到视图被“停用”时,这仅仅是在导航视图时隐藏视图的过程吗?如果KeepAlive=False,此时视图是否会被处理?

嵌套视图/区域呢?如果一个视图包含一个内部有另一个视图的区域,并且我离开父视图,两个视图是否都会被停用/销毁(取决于 的值KeepAlive)?怎么样ClearChildViewsRegionBehavior- 这在哪里适合?

4

1 回答 1

0

我不知道这是否适用于您的情况,但我实现了接口 INavigationAware。
如果应该为每个导航重用视图,我总是从 IsNavigationTarget 方法返回 true。

public bool IsNavigationTarget(NavigationContext navigationContext)
{
    return true;
}
于 2013-04-16T09:15:38.123 回答