更改/交换 XAML 页面上的绑定对象?

Change / Swap Bound Object on XAML page?

背景:

为了学习 WP 8.1 开发(非 SL),我正在构建一个针对儿童的测验应用程序。这是一款水果猜谜游戏。

它应该如何工作:

用户看到一张水果图片和三个词。其中一个词是水果的名称。如果选择了正确的水果词,则用户会得到一分,并且还会显示下一个带有词选项的水果。

问题是什么:

我是 WP 8.1 开发的新手,我不太确定当用户选择正确答案时如何在 XAML 页面上交换绑定 QuestionVM.cs。这是我将我目前拥有的图表放在一起的图表:

当用户选择正确答案时,整个 QuestionVM 需要更换。

我该怎么做?

有没有办法做到这一点?或者我必须更改 QuestionVM.cs 上的 实际属性 而不是交换整个 QuestionVM.cs 实例?

  1. 在您的 QuestionVM 之上创建一个 MainVM。这将是您主屏幕的后台商店。
  2. MainVM 中创建私有 List<QuestionVM>。这将在其中存储所有问题对象。
  3. 创建 QuestionVM 类型的只读 CurrentQuestion 属性。这将指向当前的问题对象。
  4. 为当前问题保留一个私有整数索引。
  5. MainVM 中创建 MoveNextMovePrevious 命令(RelayCommand 类型)。在选择正确答案时调用它们(或通过您需要的明确按钮)。
  6. 这些命令将简单地 increment/decrement 当前索引,然后在 CurrentQuestion 属性 上调用 RaisePropertyChanged。这将更新您的 UI.

注意:我假设您正在使用 MVVM Light 或其他一些 MVVM 框架,并且您的 VM 类 继承自 ViewModelBaseObservableObject