我有一个senario,其中一个视图和视图与多个ViewModel绑定。
EG。 One View显示Phone Detail和ViewModel,如下所示:
我已将View的常规属性放到PhoneViewModel.Now senario是这样的:
默认情况下,View显示与 ObservationCollection of PhoneViewModel 绑定的Phone Basic功能。我的视图有按钮 - '查看附件',点击此按钮一个弹出屏幕 - 在我的设计中我显示/隐藏网格并用 ObservationCollection的PhoneAccessoryViewModel 绑定它。 / p>
现在问题开始 - 附件列表也有按钮'查看详细信息'onclick我必须打开一个弹出屏幕,这里我也放置了一个网格和可见/隐藏它。我将'ViewAccessoryDetailCommand'命令绑定到'查看详细信息'按钮。在命令执行时,一个函数触发并设置Visible the Popup屏幕的属性。
使用此类编程命令触发,函数调用但属性更改不会引发,因此我的视图不会显示弹出窗口。
要点: 一个视图 - > ViewModel1 - > Grid绑定视图ViewModel2 - > Grid Have Button和Onclick显示与ViewModel3绑定的新Grid - 此命令触发但属性不会升起。
我认为我的方法存在一些问题,请给出你的建议。
答案 0 :(得分:1)
在WPF中,通过将查看的DataContext
设置为 ViewModel,将查看连接到 ViewModel 即可。
由于每个控件只能有一个DataContext
查看只能有一个 ViewModel 。
答案 1 :(得分:1)
我不确定我是否完全按照你要问的方式,但我会回答你。 我昨天发布了(可能)类似问题的答案。
见
和
MVVM - what is the ideal way for usercontrols to talk to each other
我不确定是否有,但我希望这有帮助。