2013-07-01 145 views
2

我有一個MvvmCross PCL和一個相關的MonoDroid UI項目(從Stuart Lodge的優秀N + 1視頻系列複製模式)。我想將一個Action Bar菜單項的點擊綁定到我的ViewModel中的一個ICommand。我見過this post,但IMenuItem似乎沒有合適的屬性來綁定。我知道SetOnMenuItemClickListener方法,但是(這無疑是我缺乏理解)不知道如何利用它來將System.Windows.Input.ICommand綁定到它。MonoDroid的MvvmCross - 如何綁定到菜單項目單擊事件

此外,如果這是可能的,是否可以在MvxView的OnCreateOptionsMenu方法中完成,因爲這提供了操作欄菜單本身的句柄?

回答

5

我不認爲你可以綁定它,因爲ActionBar是在XML視圖之外加載的東西。它也不會公開任何C#類型的事件點擊項目,因爲它們是從菜單xml文件填充的。但是,當單擊MenuItem時,您可以在SetOnMenuItemClickListener執行命令中執行命令。你可以簡單地執行這樣的命令:

ViewModel.MyAwesomeCommand.Execute(); 
+0

感謝您的解釋。雖然我的ViewModel構造函數使用IoC模式,但我沒有看到如何使用.Execute()方法。 – Graham

+0

感謝您的解釋。雖然我的ViewModel構造函數使用IoC模式,但我沒有看到如何使用.Execute()方法。公共NewJobViewModel(IDataService dataService,IMvxPictureChooserTask pictureChooserTask,IMvxFileStore fileStore),我不能讓我的Command方法是靜態的,因爲我需要一個ViewModel實例來調用Model中的方法。或者我錯過了什麼? – Graham

+0

因爲我發現了Mvx.Resolve方法,所以請忽略我上面的評論,看起來像我需要採取的方法。我也遇到過這個問題,但可能是因爲我缺乏理解。我** [發佈了另一個與此有關的問題](http://stackoverflow.com/questions/17426862/mvvmcross-failed-to-resolve-type-for-viewmodel)** – Graham

相關問題