Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用ViewModel方法的命令绑定_C#_Wpf_Mvvm - Fatal编程技术网

C# 使用ViewModel方法的命令绑定

C# 使用ViewModel方法的命令绑定,c#,wpf,mvvm,C#,Wpf,Mvvm,我正在使用一些应用程序命令,如New、Open等,我希望在viewmodel中执行它们的处理程序和CanExecute处理程序,但我遇到了问题,似乎找不到任何解决方法。我有一个这样的commandBinding,我有一个在viewmodel中执行的NewCommand\u,它是我窗口的datacontext <Window.CommandBindings> <CommandBinding Command="ApplicationCommands.New" Execute

我正在使用一些应用程序命令,如New、Open等,我希望在viewmodel中执行它们的处理程序和CanExecute处理程序,但我遇到了问题,似乎找不到任何解决方法。我有一个这样的commandBinding,我有一个在viewmodel中执行的NewCommand\u,它是我窗口的datacontext

<Window.CommandBindings>
    <CommandBinding Command="ApplicationCommands.New" Executed="{Binding NewCommand_Executed}" CanExecute="Default_CanExecute" />
...
但是,我得到了一个解析异常,内部异常是:
无法将“System.Reflection.RuntimeEventInfo”类型的对象强制转换为“System.Reflection.MethodInfo”类型。有人能解释我错过了什么,还是有办法实现我的尝试?

< P>如果你使用MVVM模式,你应该考虑采用委托命令代替CommandBindings。
您可以找到关于MVVM的教程。本节讨论的内容可以帮助您。

我认为您的代码中的命令应该是ICommand类型,而且听起来好像您将它们作为方法。请看这里。使用委托命令的第二个实现将允许您使用CanExecute。