gpt4 book ai didi

sqlite - 如何使用SQLite在Xamarin.Forms中实现MVVM以填充需要在每一行中使用INotifyPropertyChanged/Icommand的Listview

转载 作者:行者123 更新时间:2023-12-03 10:13:08 25 4
gpt4 key购买 nike

我的模型A具有一些属性,我从REST Web服务接收数据,我使用SQlite进行本地缓存。使用SQLite API,我可以使用mi类A自动创建表并在检索数据之后。没关系

现在,我需要将这些数据作为列表来填充列表 View ,就像Todo-Item带有选中项(完成-未完成),以便每次用户点击“不错的选中图像”时都更新一个 bool 值,因此我需要按行进行INotifyPropertyChanged

我认为我的选择是:

1)使用SQlite api检索整个列表,我会得到一个列表。但是我这里没有INotifyPropertyChanged更改。因此,我应该将整个List转换为将实现INotifyPropertyChanged和ICommand的List。这将增加额外的过程。但我认为我会更好

2)直接从Model继承ViewModel,这样我就可以直接从SQLite.net实现检索List,但是我应该在sqlite客户端中使用另一种方法来实现这种特定的检索方式。我也将从Model和ViewModel访问SQLite,我认为这不应该这样

3)将INotifyPropertyChanged和ICommand添加到模型中...

我尝试这三种方式,但我真的不喜欢结果代码。
还有另一种方法可以做到或建议改善当前的期权吗?

最佳答案

在您的情况下,最好的解决方法是为列表项创建ViewModel,该列表项将实现INotifyPropertyChanged并包含ICommand字段,并使用Model中的数据进行初始化(无论是通过ctor还是通过创建factory)。这样,您将获得实现所有必需功能的ViewModel列表。
这是一种很常见的方法。

关于sqlite - 如何使用SQLite在Xamarin.Forms中实现MVVM以填充需要在每一行中使用INotifyPropertyChanged/Icommand的Listview,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46811742/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com