在哪里保留我想要在多个ViewModel之间共享的对象实例

时间:2013-03-13 03:48:24

标签: c# wpf mvvm architecture

我正在构建一个C#& amp;使用MVVM的xaml。这个游戏包含一个主菜单和一个新的游戏选项。新的游戏按钮将您带到玩家选择页面,您可以在其中键入两个玩家的名称,并选择是玩家对玩家游戏还是玩家与电脑游戏。然后你到达游戏屏幕并玩游戏。

我的问题是,我在Game对象中保留了持久性信息,其中包含Player Player1Player Player 2以及ReactiveCollection<Tile> Tiles等属性。我应该只是制作Game实例静态并且已完成或是否有更好的方法来执行此操作?

1 个答案:

答案 0 :(得分:0)

我会使用游戏服务。

public interface IGameService
{
    Player PlayerOne { get; set; }
    Player PlayerTwo { get; set; }
    Tiles ReactiveCollection { get; set; }
}

然后,在创建viewmodels / app时,可以使用IOC / Dependency注入将您的服务解析为类。这样,您可以创建可供任何视图模型使用的服务类的单例,但它是可分离且可测试的。然后,实现IGameService的类可以获得来自游戏的信息/数据,但它也需要灵活。您可以更改信息的传递方式,而无需更改使用该服务的视图模型。