【发布时间】:2014-12-19 09:26:39
【问题描述】:
我有 2 个视图及其各自的视图模型。 我在两个视图中都有一个按钮。 单击按钮时,我必须从两个视图中执行相同的命令。
<Button Command="{Binding SearchTreeCommand}" Content="Next"/>
我有一个在两个视图模型中都实现的命令接口。执行方法必须根据数据上下文调用 PerformSearch 函数,即我在两个具有不同实现的视图模型中都有一个 PerformSearch 函数。如何从命令的execute方法调用PerformSearch的具体实现?
public class SearchTreeCommand : ICommand
{
private readonly IViewModel m_viewModel;
public SearchTreeCommand(IViewModel vm)
{
m_viewModel = vm;
}
event EventHandler ICommand.CanExecuteChanged
{
add { }
remove { }
}
public void Execute(object param)
{
//how do I call the PerformSearch method here??
}
public bool CanExecute(object param)
{
return true;
}
}
public interface IViewModel
{
}
【问题讨论】:
-
我不确定我是否理解得很好,但是您可以使用 Button.CommandParameter 将参数传递给命令,如果工作特定于 DataContext,那么您可以编写:
标签: c# wpf mvvm command commandbinding