【问题标题】:MVVM - Master/Detail scenario with Navigation and BlendabilityMVVM - 具有导航和可混合性的主/细节场景
【发布时间】:2010-05-14 15:24:00
【问题描述】:
我将从我想要的开始,这样可能更容易理解:
- 我有一个页面 (Master.xaml),它有一个 PersonViewModel 列表框。
- 当用户从列表框中选择 PersonViewModel 时,我想导航到所选 PersonViewModel 的详细信息 (Details.xaml) 页面。
- 详细信息页面做了一些额外的繁重工作,我只想在用户导航到该页面后完成这些工作。 (我不想在主列表框的每个 PersonViewModel 中加载太多东西)
那么你们如何在保持“可混合性”的同时通过导航处理主/细节场景?
过去一周我一直在转圈。对于应该很常见的事情似乎没有干净的解决方案?
【问题讨论】:
标签:
silverlight
mvvm
blend
mvvm-light
【解决方案1】:
找到了一个我非常满意的解决方案。当 IsInDesignTool 为真时,我调用命令来伪造用户交互(例如:PlayCommand),因此当我看到设计区域处于混合状态时,就好像用户已经触发了命令。
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; }
}