所以我试图创建一个简单的应用程序,如购物应用程序。所以我有类别和多个项目的每个类别,当你选择一个项目,然后你将有可能增加多少你需要或删除该项目。例如,我选择了三个项目,所以我的购物车有3个项目,每个项目都有一个添加按钮和一个删除按钮。当我点击添加按钮时,显示的项目数量应该增加,等等。
到目前为止,我所做的是创建一个包含所有类别的JSON文件,一旦我点击了一个类别,我就可以反序列化另一个包含所有项目的JSON文件,因此显示的项目当然取决于我选择的类别。
现在,每次我选择一个项目,它会被添加到购物车,并显示在底部的页面与+和-按钮等。
因此,我创建了一个category类来反序列化我的json,并创建了一个objets类来反序列化我的Item的json。我在objets类中实现了INotifyChangedProperty,以便每当所选项目的数量增加时,我都可以继续显示,这基本上是我的ViewModel,但我猜这就像我需要每个创建的项目的ViewModel一样?所以我猜我真正需要使用的是ObservableCollection。
我希望我解释清楚了每件事,并等待您的反馈,如果我这样做是正确的或错误的,我应该如何进行得到我想要的。
3条答案
按热度按时间o2rvlv0m1#
问题是,要将bindingcontext设置为我的“Objets”类,我必须将参数放入其中,然后我的Label将得到一个精确的值...我应该怎么做?
我已经为你的模型写了一个示例,你可以看看:
更新日期:
但我想这就像我需要每个创建的项目的视图模型一样?所以我想我真正需要使用的是ObservableCollection ..
您说您有三个类别,每个类别有很多项目,如果您在ListView中显示这些,类别用作Group头,我建议您可以对不同类别的不同项目使用相同的模型,然后在Observablecollection中添加,因为它已经实现了INotifyPropertyChanged接口。
关于ListView组,你可以看看:
https://github.com/xamarin/xamarin-forms-samples/tree/master/UserInterface/ListView/Grouping
如果你还有其他问题,我建议你可以创建新的线程来问,因为这个线程很长。
s3fp2yjn2#
以编程方式设置绑定
为了在VM更改时更新UI,VM需要实现
INotifyPropertyChanged
cbwuti443#
这是一些可能对你的问题有帮助的指导。你的代码很乱,我认为这是导致你困惑的原因(你有几个名字非常相似的东西)。
这表明您正在直接设置成员变量
Nbr_Objet
,当您这样做时,属性更改通知不会触发-您需要通过公共nbr_objet
分配该值才能实现。我建议你在XAML中定义绑定,并确保你绑定到属性
nbr_objet
,而不是私有成员变量(字段)Nbr_Objet
。如果你想避免混淆,遵循C#编码标准,将你的成员变量命名为_nbrObjet
,并将你的属性名命名为public int NbrObjet { get {...
。