在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; } }