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

Bea*_*ker 7 c# lifecycle caliburn.micro

有没有人知道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)
Run Code Online (Sandbox Code Playgroud)

到目前为止我看到的这似乎是订单(应用程序启动退出):

  1. OnViewAttached
  2. OnInitialize
  3. OnActivate
  4. OnViewReady
  5. OnViewLoaded
  6. OnActivationProcessed
  7. OnDeactivate

但每种方法的要点是什么?例如,何时设置了datacontext,样式模板应用于视图并准备显示?视图何时显示?(ViewReady和ViewLoaded之间的区别?)

Rav*_*erg 1

不是完整的答案,但它是一个开始,从这个值得阅读的项目文档中,您可以找到其中一些事件的要点:

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

对于发送到方法的参数以及屏幕各层及其生命周期的许多其他主题也有很好的解释。

\n