在List / ObservableCollection中维护集合
我已成功添加一个项目列在MVVM中,现在我的问题是维护视图模型中的列表。 每次我导航到页面或返回页面并返回到列表视图时,列表都会重置。 我将如何实现这一目标? 我目前正在使用棱镜来构建MVVM。
ViewModel:
public ObservableCollection _cartData; public ObservableCollection CartData { get { return _cartData; } set { SetProperty(ref _cartData, value); } } private DelegateCommand _addItemCommand; public ICommand AddItemCommand { get { if (_addItemCommand == null) { _addItemCommand = new DelegateCommand(AddToCart); } return _addItemCommand; } } public void AddToCart() { CartData.Add(new CartData { Cakename = "Black Forest", Cakeprice = 104 }); }
视图:
..... ....
这里,如果您的ViewModel是CartingDataSource
,那么它将在每次页面加载时进行实例化。 现在,如果是这种情况,那么您将在构造函数中创建集合的新实例,如下所示:
public CartingDataSource() { CartData = new ObservableCollection(); }
因此,它重新初始化您的collections。
您需要从构造函数中删除初始化并执行以下操作:
public ObservableCollection _cartData; public ObservableCollection cartData { get { if(_cartData == null) { _cartData = new ObservableCollection (); } return _cartData; } set { _cartData = value; } }