2013-07-23 53 views
0

我一直在为此奋斗一段时间。到目前为止,我一直在MVC项目中保存一个单身类的支持数据,但这已经开始给我带来问题。我正在寻找一种将我的支持数据保存在一个集中的,易于访问的位置的好方法,但我不想将其设置为静态,并且在实施此类系统时遇到问题。MVVM - 处理备份数据

例如,我有一个名为GameContainer的类,它包含所有创建对象的ObservableCollection s。我希望能够访问这些ObservableCollection和在我的代码中包含的对象实例,我想维护这种结构,除非有更好的方法来实现它。如果有更好的方法,我很乐意了解它。

我在初始化类中有一个方法,当程序启动时,我们会说它会创建每个对象的10个实例并将它们添加到GameContainer中的ObservableCollection。所以现在我的主屏幕的ViewModel需要访问这些对象。不使GameContainer静态,我的ViewModel如何访问所需的数据?

这是一个需要国际奥委会的情况吗?如果是这样,我该如何恰当地实施?

任何建议或意见将不胜感激。我最近在这里停滞不前,我很想能够继续在我的项目上取得进展。

谢谢。我期待看到你要说的话。

+0

通过其构造函数将'GameContainer'传递给视图模型? – McGarnagle

+0

你能解释为什么单身人士课程会对你造成问题吗?根据你对问题的描述,听起来像用Paul建议的那样用静态访问器创建一个单例是最好的选择。 – Sauce

+0

这些问题源于使用LINQ通过名为OLinq的扩展过滤和绑定数据到UI。目前,该扩展不适用于任何静态和显然即使它会导致内存泄漏。我想现在是时候咬紧牙关,用ICollectionView来过滤我的数据,除非我能找到更好的东西。 –

回答

3

单身人士通常会有一个静态访问器。

所有你需要的是让你的viewmodels设置一个属性等于GameContainer,或者单独的属性设置到GameContainer的各个memebers。

+0

感谢您的回复。这就是我一直在做的事情。正如我在上面的评论中提到的,这个不适合我的唯一原因是由于一个扩展与任何静态表现不一样。看起来,这可能是延长延期的时候了。 –