MonoDroid的MvvmCross - 如何绑定到菜单项单击事件

Gra*_*ham 2 xamarin.android mvvmcross xamarin

我有一个MvvmCross PCL和一个相关的MonoDroid UI项目(模式从以下Stuart Lodge的优秀N + 1视频系列中复制而来).我想将Action Bar菜单项的单击绑定到ViewModel中的ICommand.我已经看过这篇文章,但IMenuItem似乎没有合适的属性可以绑定.我知道SetOnMenuItemClickListener方法但是(这无疑是我缺乏理解)不知道如何利用它来将System.Windows.Input.ICommand绑定到它.

另外,如果可以,可以在MvxView的OnCreateOptionsMenu方法中完成,因为这提供了Action Bar菜单本身的句柄吗?

Che*_*ron 6

我不认为你可以绑定它,因为ActionBar是在XML视图之外加载的东西.此外,它不会在项目点击时公开任何C#类型的事件,因为它们是从菜单xml文件中填充的.但是,单击SetOnMenuItemClickListenera时可以执行命令MenuItem.你可以简单地执行这样的命令:

ViewModel.MyAwesomeCommand.Execute();
Run Code Online (Sandbox Code Playgroud)

  • 实际上,忽略我上面的观点,我没有意识到MvvmCross提供了您刚刚转换为相关类型的ViewModel属性,因此可以直接访问ViewModel的属性和方法:`((NewJobViewModel)ViewModel).MyAwesomeCommand.执行(NULL);` (2认同)