1
是否有很好的形式化模式来管理MVVM中的状态?
我已经开始了解网络世界中的Redux和React,并且对它的了解越多,我越意识到WPF的MVVM风格的架构在桌面世界中的状态管理是多么痛苦(使用Caliburn专门绑定视图)。到ViewModels)。 Redux有一些简单的原则,指示如何管理状态,从而使UI更新,事件处理和状态更改更加可预测。原则是: 单一事实来源(所有可变状态都存储在单个共享库中)。 状态为只读。组件无法在整个代码中对其进行修改,这通常是WPF中发生的情况。 状态只能通过纯函数进行修改。 WPF的MVVM体系结构允许您非常快速地构建交互式视图,但是当各种视图模型和事件都改变状态时调试问题是一场噩梦。例如:触发了一个事件,该事件更改了视图并尝试设置默认选项卡,但是数据尚未从Web服务异步加载完成,因此该选项卡不存在(尚未),因此没有任何反应 我花了数小时来绘制图表,以尝试理解相互更新的相互关联的viewModels组件之间的复杂交互。 我了解Redux旨在解决这种状态不可预测的问题。是否有类似的东西,或与WPF很好地配合以更好地管理状态的体系结构模式?我不确定Redux原则在.NET中的运行情况如何,因为我还没有尝试过。也许有人有经验可以提供一些建议?