Caliburn.Micro 屏幕和导航生命周期文档

8
有没有人知道一个关于Caliburn.Micro屏幕/导体生命周期概述的来源?例如,描述它们调用顺序/依赖关系以及何时调用或不调用的条件的序列图/流程图? 到目前为止,我主要使用OnViewLoaded,但我想知道哪些会第二次调用(再次显示时等)。我还没有找到有关屏幕生命周期的良好文档。 是的,我知道它是开源的,我可以阅读源代码或调试它(我现在正在做这件事)......只是认为这个要求对于使用Caliburn.Micro来说有点基本,必须已经有人做过了,我不需要自己创建这个概述。也许这个答案也可以帮助其他人。;-) 例如,当从Conductor.Collection.OneActive派生时,存在以下(甚至更多)似乎在生命周期中起作用并且可以重载的方法:
protected virtual void OnInitialize()

protected virtual void OnActivate()

protected virtual void OnActivationProcessed(IScreen item, bool success)

protected virtual void OnDeactivate(bool close)

protected virtual void OnViewAttached(object view, object context)

protected virtual void OnViewLoaded(object view)

protected virtual void OnViewReady(object view)

从应用程序启动到退出,我所看到的顺序如下:
  1. OnViewAttached:视图附加时
  2. OnInitialize:初始化时
  3. OnActivate:激活时
  4. OnViewReady:视图准备就绪时
  5. OnViewLoaded:视图加载完成时
  6. OnActivationProcessed:激活处理完成时
  7. OnDeactivate:停用时
但是每个方法的要点是什么呢?例如,数据上下文何时设置?样式模板何时应用于视图并准备好显示?视图何时显示?(ViewReady和ViewLoaded之间的区别是什么?)
1个回答

1

虽然不是完整的答案,但这是一个开端。在 此项目的文档 中,你可以找到一些事件的要点,值得一读。

  • OnInitialize - 重写此方法以添加仅在第一次激活屏幕时执行的逻辑。初始化完成后,IsInitialized 将为 true。
  • OnActivate - 重写此方法以添加每次激活屏幕时都应执行的逻辑。激活完成后,IsActive 将为 true。
  • OnDeactivate - 重写此方法以添加在屏幕停用或关闭时应执行的自定义逻辑。bool 属性将指示停用是否实际上是关闭。停用完成后,IsActive 将为 false。
  • OnViewLoaded - 由于 Screen 实现了 IViewAware,因此它利用此机会让您知道何时触发视图的 Loaded 事件。如果您正在遵循 SupervisingController 或 PassiveView 样式,并且需要使用视图,则可以使用此选项。这也是放置可能依赖于视图存在的视图模型逻辑的地方,即使您可能不直接使用视图。

这里还有一个关于传递给方法的参数以及许多其他屏幕层和其生命周期主题的很好的解释。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接