如何从viewmodel访问usercontrol上的命令

时间:2009-10-29 01:55:36

标签: wpf user-controls command

我有传统的Windows窗体用户控件,它暴露了几种公共方法。我将此控件包装在wpf用户控件上,并在新的wpf usercontrol上使用relay命令封装了Methods。

现在我的问题是如何使用mvvm模式在我的用户控件表单上执行命令,该视图模型与托管新wpf用户控件的视图一起使用。

3 个答案:

答案 0 :(得分:0)

在viewmodel中,您必须添加一个字段

Public ICommand CommandOne

现在,此命令将根据您的要求/条件创建一个新的RelayCommand对象。

现在,您可以将此“CommandOne”命令与控件表单上的任何对象说按钮绑定。

因此,只要单击该按钮,就会创建RelayCommand对象,并将执行作为参数赋予它的操作。

希望它适合你。

答案 1 :(得分:0)

我喜欢如何使用绑定工具。需要将模式设置为OneWayToSource以从用户控件获取命令。棘手的部分是命令的初始化必须在usercontrol的加载事件中完成。如果您尝试在构造函数内部执行此操作,则最终将使用绑定的默认初始化,该初始化可能为null。

答案 2 :(得分:0)

使用PRISM EventAggregator?您可以从ViewModel发出一个事件,从您的Usercontrol订阅它。

http://www.codeproject.com/Articles/355473/Prism-EventAggregator-Sample https://msdn.microsoft.com/en-us/library/ff921122.aspx