重用usercontrol中的控件

时间:2010-04-08 07:06:58

标签: wpf silverlight mvvm icommand relaycommand

我在UserControl1中有一个UserControl UserControl1和一个按钮。我有一个UserControl1ViewModel,它具有按钮的ICommand属性。使用此命令,我需要在VM外部(从MainWindow的其他VM或VM)调用方法。这是什么最好的做法?

3 个答案:

答案 0 :(得分:0)

您最有可能希望实现Mediator模式来处理两个视图模型之间的通信。

同样的另一个问题是: mvvm-view-model-view-model-communications

答案 1 :(得分:0)

您可能想要检查Laurent Bugnion http://www.galasoft.ch/mvvm/getstarted/

的MVVM lite

这是一个用于帮助实施mvvm概念的轻量级工具包。其中,每个viewmodel都是ViewModelLocator类中的静态成员。例如,在你的命令中,你可以做这样的事情。

ViewModelLocator.MainViewModel.MainContent = NewContent;

如果没有mvvm lite,你可以完全做到这一点,但使用它确实有助于加快学习曲线并加强模块化。

答案 2 :(得分:0)

我会考虑使用Controllers进行ViewModel之间的中介。 The WPF Application Framework (WAF) 显示了这是如何运作的。