MVVM跨多个页面交叉编辑复杂对象并保存数据
一般来说,我对mvvmcross和mvvm模型相当陌生。几周来,我一直在尝试创建自己的跨平台应用程序,我一直在坚持什么才是好的做法。我有两个主要的问题,我希望有人能帮我解决 问题1: 我有一个复杂的模型,其中包含许多属性、子项以及这些子项中的子项。此外,许多值会根据其他值自动计算。 我在任何地方都实现了MvxNavigatingObject,所有值在发生更改时都会得到正确的通知。到目前为止还不错 现在我想让人们使用该应用程序来更改我模型中的值。但是因为有这么多的输入字段,我想把数据分成几页。当然,每个页面都有自己的视图模型。这意味着每次页面更改时都要重新加载我的大对象。 为了解决这个问题,我创建了一个DataHolderService,它作为一个单例加载到所有视图模型上。然后我让我的viewmodels更改DataHolderService中的数据,并且我永远不必重新加载数据 但我想知道,这是一个好的做法吗?这样做感觉有点奇怪。还有其他的可能性吗?喜欢在多个页面上使用相同的viewmodel吗 问题2 我想将数据保存到数据库中,以便在会话之间保持数据。我有一个SQLite数据库,可以使用按钮保存数据。但如果用户忘记使用“保存”按钮,应用程序会被放在后台,直到系统最终将其关闭,数据就会丢失。MVVM跨多个页面交叉编辑复杂对象并保存数据,mvvm,mvvmcross,Mvvm,Mvvmcross,一般来说,我对mvvmcross和mvvm模型相当陌生。几周来,我一直在尝试创建自己的跨平台应用程序,我一直在坚持什么才是好的做法。我有两个主要的问题,我希望有人能帮我解决 问题1: 我有一个复杂的模型,其中包含许多属性、子项以及这些子项中的子项。此外,许多值会根据其他值自动计算。 我在任何地方都实现了MvxNavigatingObject,所有值在发生更改时都会得到正确的通知。到目前为止还不错 现在我想让人们使用该应用程序来更改我模型中的值。但是因为有这么多的输入字段,我想把数据分成几页。当然
因此,我添加了一个计时器,它定期将数据保存到数据库中。但我能理解这不是很好的做法。不需要用户按下保存按钮,将数据保存回数据库的好方法是什么?是否有一个事件/函数会在处理视图模型之前触发?然而,要准确理解您试图实现的目标有点困难
谢谢你的回复。我可以把所有的东西都放在一页纸上。但我认为,如果您能够导航到多个页面(使用pivot或viewpager)将不同的数据分类到不同的页面中,将改善用户体验。但是,由于所有数据都会相互影响,所以我每次都需要重新加载所有数据,或者像我现在所做的那样,向singleton服务注入数据。保存数据的想法听起来很完美。这样可以立即保存所有内容,并防止在快速键入文本时出现问题。