当前位置: 首页 > 编程语言 > C#

我可以在命令中调用命令吗?分享

时间:2023-04-10 23:51:48 C#

我可以在命令中调用命令吗?我在我的视图模型中为我的对话窗口定义了一个关闭命令。我在视图模型中定义了另一个命令。现在我将该命令绑定到我视图中的控件。在一些命令操作之后,我希望它调用关闭命令来关闭窗口。那可能吗?是的。您可以使用包含两个(或任意数量)其他命令的CompositeCommand。我相信这是在Prism中,但如果您无法在您的项目中访问它,那么您自己实现类似的功能并不难,特别是如果您不使用参数-您所做的就是使用该类实现ICommand,然后在class中有一个私有的ICommands列表。以下是Prism的CompositeCommand类的更多内容:http://msdn.microsoft.com/en-us/library/microsoft.practices.composite.presentation.commands.compositecommand_members.aspx我自己肯定是短暂的,可能是非规范实现。要使用它,您需要做的就是在VM上引用它,然后绑定到它。您可以为要运行的所有其他命令调用.AddCommand。可能是Prism的实现方式不同,但我相信这会起作用:以上是C#学习教程:CanIcallacommandwithinacommand?如果分享的内容对你有用,需要了解更多C#学习教程,希望你多多关注——publicclassCompositeCommand:ICommand{privateListsubCommands;publicCompositeCommand(){subCommands=newList();}publicboolCanExecute(objectparameter){foreach(ICommandcommandinsubCommands){if(!command.CanExecute(parameter)){returnfalse;}}返回真;}公共事件EventHandlerCanExecuteChanged;publicvoidExecute(objectparameter){foreach(ICommandcommandinsubCommands){command.执行(参数);}}publicvoidAddCommand(ICommandcommand){if(command==null)thrownewArgumentNullException("Yadayada,commandisnull.Don'tpassnullcommands.");subCommands.Add(命令);}}本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: