我希望在这里扩展这篇文章/sf/answers/4225135911/
我不完全理解使用 Prism 时视图和视图模型初始化期间发生的事件顺序。丹解释得很好,但我仍然遗漏了一些东西。
我的场景很简单,我在导航参数中传递一个 ID,视图模型将使用该 ID 从服务中查找一些数据,这一切都在 Initialize 方法中完成。但是,问题是视图属性在调用 Initialize 方法之前被触发,这意味着我还没有要显示的数据,这给我带来了一些额外的工作。
丹对事件的顺序提供了很好的解释
这是我需要帮助的地方:
我假设步骤 3 中 Dan 说的“导航服务将为您设置”意味着此时已设置视图的 BindingContext?那么,BindingContext 是在 ctor 之后但在 Initialize 方法之前设置的吗?这意味着在 Initialize 方法中设置的所有属性将始终触发两次,一次是在设置绑定时触发,另一次是通过 Initialize 或 Autoinitialize 设置属性?
就我而言,这并不理想,因为所有属性都必须在 Initialize 方法中引发,并且我必须处理所有 null 情况。
我真的不想通过选择退出自动连接来手动完成这一切,但我没有看到任何其他选项,我是否遗漏了一些东西?有人知道是否可以修改 Prism 以将 BindingContext 的设置延迟到调用 Initialize 方法之后?
谢谢。