问题 在哪个命名空间中是DelegateCommand?


我试图从“使用C#进行.NET域驱动设计”中找到一个示例,其中包含一个代码示例,您可以在其中看到声明的某些属性类型 DelegateCommand

现在,我已经尝试了谷歌搜索,但我无法在MSDN上的任何地方找到它的参考(实际上,我找到了 这个 文章,但没有 DelegateCommand的文章本身)。

是个 DelegateCommand 这是一部分的东西 WPF 或者它只是书中创造的东西?

如果它是WPF(或任何其他MS产品)的一部分,那么汇编/命名空间是什么?


3863
2017-07-20 07:05


起源



答案:


DelegateCommand不是标准库(BCL)的一部分。

它是MVVM的WPF命令绑定的一部分。

在VS中获得“官方”MVVM模板之前,所有MVVM示例/工具包本身都在其中定义。并不总是使用相同的名称或在同一个地方。


3
2017-07-20 07:32





如果您使用MS Prism,请下载lib,添加对项目的引用,然后您就可以了

using Microsoft.Practices.Prism.Commands; // for DelegateCommand & RaisePropertyChanged

8
2018-06-20 11:41



如果您想获得Prism,请确保已安装NuGet,打开包管理器控制台并输入 Install-Package prism。 - Tor Klingberg


答案:


DelegateCommand不是标准库(BCL)的一部分。

它是MVVM的WPF命令绑定的一部分。

在VS中获得“官方”MVVM模板之前,所有MVVM示例/工具包本身都在其中定义。并不总是使用相同的名称或在同一个地方。


3
2017-07-20 07:32





如果您使用MS Prism,请下载lib,添加对项目的引用,然后您就可以了

using Microsoft.Practices.Prism.Commands; // for DelegateCommand & RaisePropertyChanged

8
2018-06-20 11:41



如果您想获得Prism,请确保已安装NuGet,打开包管理器控制台并输入 Install-Package prism。 - Tor Klingberg


DelegateCommands 是一个自定义的实现 ICommandDelegateCommand 在棱镜(复合应用程序框架)中引入(如果我错了,请纠正我) - http://compositewpf.codeplex.com/ 

你可以使用它,或者你可以在这里实现自己 -

https://web.archive.org/web/20101120214610/http://kentb.blogspot.com/2009/04/mvvm-infrastructure-delegatecommand.html


3
2017-07-20 07:32





我发现它被称为 RelayCommand (我认为这是原来的名字,说实话)。请看这里:

MVVM路由和中继命令

http://msdn.microsoft.com/en-us/magazine/dd419663.aspx#id0090051

希望有所帮助!


1
2017-07-20 07:34



从MSDN文章 - “RelayCommand是Microsoft Composite Application Library中的DelegateCommand的简化变体”。 - akjoshi