有没有人知道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)
到目前为止,我看到的似乎是订单(app启动退出):
但每种方法的要点是什么?例如。何时设置了datacontext,样式模板应用于视图并准备显示?视图何时显示? (ViewReady和ViewLoaded之间的区别?)
答案 0 :(得分:1)
不是一个完整的答案,但它是一个开始,从这个项目的documentation,值得一读,你可以找到其中一些事件的要点:
- OnInitialize - 覆盖此方法以添加仅在第一次激活屏幕时才应执行的逻辑。初始化完成后,IsInitialized将为true。
- OnActivate - 覆盖此方法以添加每次激活屏幕时应执行的逻辑。激活完成后,IsActive将成立。
- OnDeactivate - 覆盖此方法以添加自定义逻辑,应在屏幕停用或关闭时执行该逻辑。如果停用实际上是关闭,则bool属性将指示。停用完成后,IsActive将为false。
- OnViewLoaded - 由于Screen实现了IViewAware,因此以此为契机,让您知道何时触发视图的Loaded事件。如果您遵循SupervisingController或PassiveView样式并且需要使用视图,请使用此选项。这也是放置视图模型逻辑的地方,即使您可能没有直接使用视图,也可能依赖于视图的存在。
对于发送到方法的参数以及屏幕图层及其生命周期的许多其他主题,也有很好的解释。