首页 > 解决方案 > *何时*您从 Xamarin Forms 列表视图中的编辑控件保存数据?

问题描述

我想不出如何最好地表达我的问题,所以你认为我要问的可能不是我要问的。假设我有三个工作应用程序,但第四个应用程序的需求略有不同,所以我寻求建议/最佳实践,而不是如何编写 SQL 语句、编写列表视图、自定义视图单元或如何绑定到数据模型。我已经得到了这一切。

TLDR 版本:

我需要的是一种理智的方式来了解用户何时完成输入他的数据,以便我可以将其推送到我的服务器。

我知道有人已经解决了这个问题,所以我征求你的意见。如果您也不想在每次击键时都保存,我对您的建议特别感兴趣。

这是稍微更详细的版本:

我正在为我们的桌面软件的一部分编写一个配套应用程序,它使用专有数据服务器来存储我可以从移动设备访问的数据。在我以前的应用程序中,我有一屏控件。用户输入/修改数据,我知道当他们退出屏幕时要保存到我的本地 sqlite 表中。它基本上是一个事务模型,我只在他们按下按钮时才将数据上传到我们的服务器。效果很好。

然而,对于这个应用程序,用户只需在列表中输入数字,而不是输入一屏信息。想想库存:用户有一个产品和数量列表,他们会更新数量以匹配他们所拥有的。用户不会经常离开数据输入屏幕,并且可能会关闭设备,或者将应用程序踢出内存而不“返回”,因此我的数据模型可能有未存储的数据。

我在列表视图中有输入字段。我需要将输入的数据推送到我的 sqlite 表,然后推送到我们的专有数据服务器。我本来想从我的数据模型中的属性设置器中做到这一点,但遗憾的是,当数据模型最初绑定时,以及每次击键时都会调用它。

我知道有很多人在列表视图中编码数据输入,我已经阅读了所有帖子以了解如何使视图单元工作。我主要使用 Entry 控件,并且我尝试过使用 TextChanged、Completed 和 Unfocused。每个都有某种问题,使其成为“开箱即用”的不良解决方案。我有一些想法并且知道如何解决我的部分问题,但我希望那里有人有比我收集的小技巧更好的解决方案。

显然,我忽略了很多细节(和复杂性)。我正在使用视图 - 视图模型 - 模型架构,但没有使用 MVVM 或任何类似的框架。我的解决方案需要采用“香草”Xamarin 形式。

非常感谢你的帮助!

标签: data-managementxamarin.forms.listview

解决方案


我会发表评论,但我没有足够的声誉,所以就这样吧。

是否有特定原因无法将按钮添加到页面(在列表视图下方),以便用户在完成“库存”时可以按下它?我假设这是您遗漏的复杂性/细节的一部分。

如果没有按钮,您可以使用每个输入字段上的 Unfocused 事件来保存/推送数据。如果用户为每个入口控件填写了一个值,则 unfocus 事件可以调用该方法来保存数据。如果您有很长的输入控件列表,则代码隐藏会变得有点混乱,并且可能会很混乱,但它会完成工作,直到您找到(或创建)或更好的方法。

希望这可以帮助。


推荐阅读