我对MVVM比较新,如果这个问题有众所周知的解决方案,请原谅我。
我们正在构建一堆模型类,其中包含一些核心属性,这些属性是预先加载的,以及一些其他属性,可以通过调用Web API进行按需延迟加载(更新:为了澄清,每个延迟加载的属性都会进行一次Web API调用)。
与其拥有多个模型,使用一个单一的带有延迟加载逻辑的模型似乎更合理。但是,延迟加载的属性在访问时似乎不应该阻塞,以便当View绑定到ViewModel并且它绑定到Model时,我们不会阻塞UI线程。
因此,我考虑使用以下类似的模式:当访问模型上的惰性属性时,它会开始异步获取,然后立即返回默认值(例如null
)。完成异步获取后,它将引发PropertyChanged
事件,以便ViewModel / View可以重新绑定到获取的值。
我尝试过这种方法,它似乎运行得很好,但是有以下疑问:
- 这种方法是否存在任何潜在问题,在应用程序复杂度增加时会遇到这些问题吗?
- 是否存在已存在解决此问题的解决方案,无论是内置于框架中还是作为第三方框架的组成部分广泛使用?