如何创建自己的自定义命令

时间:2016-08-17 14:56:46

标签: c# wpf xaml

我是MVVM模式的新手,我正在尝试编写自己的自定义命令。编写自定义命令的最佳方法是什么? (我在这里和那里阅读了很多文章,但无法获得创建命令的想法)。特别是如果有人可以帮助我创建命令的想法,单击一个按钮从一个ListView获取项目并将它们放在另一个ListView中。 (列表视图以ObservableCollection为界)。提前谢谢!

2 个答案:

答案 0 :(得分:0)

您只需要实现ICommand界面。大多数MVVM框架都有一个基于委托的通用命令类来实现它(例如MVVM中的RelayCommand)。您只需将方法传递给它们的构造函数。

答案 1 :(得分:0)

只需实现ICommand接口即可。网上有很多,甚至在nuget包中实现。使用ICommand搜索RelayCommand或DelegateCommand,您会发现许多实现。完成之后,只需将VMs私有方法包装在命令中即可。 e.g。

ICommand startTestCommand;

public ICommand StartTestCommand { get { return startTestCommand ?? (startTestCommand = new RelayCommand(StartTest)); }

private void StartTest()
{
    //This will execute if the Command is bound in XAML
}

要在XAML中绑定命令(假设您的视图模型是数据上下文),只需将按钮的Command属性绑定到“StartTestCommand”或任何调用命令。

因此,从本质上讲,您不会为您所要求的内容“创建自己的命令”,而是将委托包装为Command调解器以处理阻止耦合。有理由创建自己的命令,但我建议使用那里的命令。