Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# MVVM-处理备份数据_C#_Mvvm - Fatal编程技术网

C# MVVM-处理备份数据

C# MVVM-处理备份数据,c#,mvvm,C#,Mvvm,我已经为此挣扎了一段时间了。到目前为止,我一直将MVVM项目的支持数据保存在一个单例类中,但这已经开始给我带来问题。我正在寻找一种好方法,将我的备份数据保存在一个集中的、易于访问的位置,但我不想让它成为静态的,而且我在实现这样一个系统时遇到了困难 例如,我有一个名为GameContainer的类,它保存所有已创建对象的observeCollections。我希望能够在我的整个代码中访问这些ObservableCollections以及其中包含的对象实例,并且我希望维护这种结构,除非有更好的方法。

我已经为此挣扎了一段时间了。到目前为止,我一直将MVVM项目的支持数据保存在一个单例类中,但这已经开始给我带来问题。我正在寻找一种好方法,将我的备份数据保存在一个集中的、易于访问的位置,但我不想让它成为静态的,而且我在实现这样一个系统时遇到了困难

例如,我有一个名为
GameContainer
的类,它保存所有已创建对象的
observeCollection
s。我希望能够在我的整个代码中访问这些
ObservableCollection
s以及其中包含的对象实例,并且我希望维护这种结构,除非有更好的方法。如果有更好的方法,我很想知道

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

这是否需要国际奥委会的支持?如果是这样的话,我该如何恰当地实现这一点

如有任何建议或建议,将不胜感激。我最近在这里停滞不前,我希望能够继续推进我的项目


谢谢。我期待着您能说些什么。

一个单身汉通常会有一个静态访问器


您只需让viewmodels将属性设置为等于GameContainer,或将单个属性设置为GameContainer的单个成员。

单例通常具有静态访问器


您只需让viewmodels将属性设置为等于GameContainer,或将单个属性设置为GameContainer的各个成员。

通过其构造函数将
GameContainer
传递给视图模型?您能解释一下为什么singleton类会给您带来问题吗?根据您对问题的描述,正如Paul所建议的那样,使用静态访问器创建单例似乎是最好的选择。问题源于使用LINQ过滤数据,并通过名为OLinq的扩展将数据绑定到UI。目前,该扩展无法处理任何静态数据,即使它处理了静态数据,显然也会导致内存泄漏。我想是时候咬紧牙关,使用
ICollectionView
s来过滤我的数据了,除非我能找到更好的方法。通过它的构造函数将
GameContainer
传递给视图模型?你能解释一下为什么单例类会给你带来问题吗?根据您对问题的描述,正如Paul所建议的那样,使用静态访问器创建单例似乎是最好的选择。问题源于使用LINQ过滤数据,并通过名为OLinq的扩展将数据绑定到UI。目前,该扩展无法处理任何静态数据,即使它处理了静态数据,显然也会导致内存泄漏。我想是时候咬紧牙关,使用
ICollectionView
s过滤我的数据了,除非我能找到更好的。谢谢你的回复。这就是我一直在做的。正如我在上面的评论中提到的,这对我来说不起作用的唯一原因是由于一个扩展不能很好地处理任何静态的东西。看来是时候放弃延长了。谢谢你的回复。这就是我一直在做的。正如我在上面的评论中提到的,这对我来说不起作用的唯一原因是由于一个扩展不能很好地处理任何静态的东西。看来,是时候放弃扩建了。