【发布时间】:2010-07-02 12:22:42
【问题描述】:
我正在为我的新项目使用 mvvm。我有一个消息调度程序在视图模型之间发送消息,但在一种情况下,我必须在视图中接收消息。 此视图包含一个工具栏面板,该面板必须包含与详细视图相关的工具栏(例如编辑客户需要一个带有保存、撤消、重做、取消的工具栏)。
问题是我必须订阅视图内的消息才能写这个:
broker.Subscribe<AddToolbarPanelMessage>(x=>toolbar.Add(x.Panel));
但是…… 我必须 1) 从容器中检索视图(所以不是 XAML!),以便为 messageBroker 提供 DI 2) 调用静态 IoC.Container.Resolve();内部构造函数
选项 2 破坏了 VS2010 设计器,因为容器未在设计模式下配置...
有什么想法吗? 视图在视图模型中不可见,我使用静态 ViewModelLocator。
【问题讨论】:
标签: wpf mvvm mvvm-light