【问题标题】:MVVM Discards the Collection in the ObservableCollection/ListMVVM 丢弃 ObservableCollection/List 中的集合
【发布时间】:2014-03-07 11:09:38
【问题描述】:

大家好,我目前很难找到 ViewModel 丢弃我的 ObservableCollection 的根本原因,我的 ViewModel 中有这段代码:

public ObservableCollection<PersonData> _personData;

        public ObservableCollection<PersonData> PersonData
        {

            get
            {

                if (_personData == null)
                {
                    _personData = new ObservableCollection<PersonData>();

                }


                return _personData;

            }
            set
            {

                SetProperty(ref _personData, value);
            }
        }

如果 _personData 为空,则实例化一个新的 ObservableList,这是我所做的唯一实例化,仅此而已。每次我离开或更改页面并返回列表视图时,集合都会消失。我有没有可能忘记删除或添加?我一直在从不同的论坛询问,但仍然没有正确的答案,而且我尝试了许多我能想到的解决方案,但仍然没有进展。有人可以帮我吗?

【问题讨论】:

    标签: c# xaml mvvm microsoft-metro


    【解决方案1】:

    如果您离开页面 - 此页面与关联的视图模型应该被销毁 - 这就是您的 ObservableCollection 消失的原因。如果此页面是应用程序中“最常用”的页面,您可能会考虑将您的 ViewModel 设为单例(最好通过某些服务定位器模式 - 看看这个:MVVM - IOC Containers),这样它就不会在导航时被清除。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-22
      • 2012-03-07
      • 2023-01-30
      • 2012-05-08
      • 2011-08-05
      相关资源
      最近更新 更多