MVVM - 具有导航和混合功能的主/细节场景

时间:2010-05-14 15:24:00

标签: silverlight mvvm blend mvvm-light

我将从我想要的东西开始,因此可能更容易理解:

  1. 我有一个Page(Master.xaml),它有一个PersonViewModel列表框。
  2. 当用户从列表框中选择PersonViewModel时,我想导航到所选PersonViewModel的详细信息(Details.xaml)。
  3. 详细信息页面做了一些额外繁重的工作,我只想在用户导航到页面后才能完成。 (我不希望在主列表框的每个PersonViewModel中加载太多东西)
  4. 那么你们如何在保持“可混合性”的同时通过导航处理主/细节场景?

    过去一周我一直在圈子里。对于那些应该很常见的东西似乎没有干净的解决方案?

1 个答案:

答案 0 :(得分:0)

找到一个我非常满意的解决方案。当IsInDesignTool为true时,我调用命令伪造用户交互(例如:PlayCommand),所以当我看到混合中的Design区域时,就像用户已经触发了命令一样。

public class ViewModelLocator
{
    public ViewModelLocator()
    {
        if (DesignerProperties.IsInDesignTool)
        {
            MainViewModel = new MainViewModel(new GameDataDummy());

            //Fake user interactions
            MainViewModel.PlayCommand.Execute(null);
        }
        else
        {
            MainViewModel = new MainViewModel(new GameData());
        }
    }

    public MainViewModel MainViewModel { get; private set; }

}