【发布时间】:2012-07-22 15:43:59
【问题描述】:
我最近开始使用 MVVM light 处理 WPF,我有以下(简单场景)。
MainWindow 包含一个元素列表框。
-
当一个被选中并单击按钮时,我会触发一个命令:
ReservoirViewerCommand.Execute(null); -
在视图模型类上,我实例化命令并发送带有所选对象的消息:
ReservoirViewerCommand = new RelayCommand(OpenReservoir); private void OpenReservoir() { Messenger.Default.Send(new LaunchShowReservoirMessage(){Reservoir=SelectedReservoir}); }地点:
class LaunchShowReservoirMessage:MessageBase { public Reservoir Reservoir { get; set; } } -
主视图注册消息并打开一个新的子窗口:
private void RegisterMessages() { Messenger.Default.Register<LaunchShowReservoirMessage>(this,OnLaunchShowReservoir); } public void OnLaunchShowReservoir(LaunchShowReservoirMessage msg) { var showReservoir = new ReservoirViewerView(); showReservoir.Show(); }
我需要的是新的 ViewModel (ReservoirViewerViewModel) 可以通过消息以某种方式获取传递的对象,以便我可以在子窗口上显示该对象的详细信息。
我进行了一些逐步调试,但似乎永远无法访问 ViewModel 构造函数。
【问题讨论】:
标签: c# mvvm mvvm-light