2013-12-26 12 views
5
でアクションバーを使用するためにどのように私はXamarinを見てきました

は最近、私は私のアプリでMvvmCrossでそれを使用したい http://components.xamarin.com/view/xamandroidsupportv7appcompatはXamarinとMvvmCross

コンポーネントとしてリリースしたが、私は困難に走ったので、私はGoogleになって、チュートリアルを見つけました http://blog.ostebaronen.dk/2013/11/getting-support-v7-working-with.html

私はMvvmCrossで正しく使用する方法を理解していません。どのようにしてボタンをICommandsなどにバインドできますか?アクションバー全体をViewModelとして指定してバインドすることはできますか?もしそうなら、どうですか?

答えて

14

MvvmCrossでActionBarをICommandにバインドする方法はありません。しかし、ActionBarのボタンが押されると、シンプルなトリックを使用してアクティビティからICommandsを呼び出すことができます。

public override bool OnCreateOptionsMenu(IMenu menu) 
{ 
    this.MenuInflater.Inflate(Resource.Menu.QuoteDetails, menu); 

    m_MenuItem_EditQuote = menu.FindItem(Resource.Id.menu_EditQuote); 
    m_MenuItem_EditQuote.SetVisible(ViewModel.CanEdit); 

    return true; 
} 

public override bool OnOptionsItemSelected(IMenuItem item) 
{ 
    switch (item.ItemId) 
    { 

     case Resource.Id.menu_EditQuote: 

      ViewModel.EditQuoteCommand.Execute(null); 
      return true; 

     case Resource.Id.menu_ViewQuote: 

      ViewModel.DownloadQuoteCommand.Execute(null); 
      return true; 

     case Resource.Id.menu_EmailQuote: 

      ViewModel.EmailQuoteCommand.Execute(null); 
      return true; 

     default: 
      return base.OnOptionsItemSelected(item); 
    } 
} 
関連する問題