如何使用Xamarin和MvvmCross的操作栏

时间:2013-12-26 19:28:31

标签: xamarin.android mvvmcross

我见过Xamarin最近发布的组件 http://components.xamarin.com/view/xamandroidsupportv7appcompat

我想在我的应用程序中使用它与MvvmCross,但我遇到了困难,所以我转向google并找到了这个教程 http://blog.ostebaronen.dk/2013/11/getting-support-v7-working-with.html

我不明白如何正确使用MvvmCross。如何将其中的按钮绑定到ICommands等?我可以将整个操作栏指定为ViewModel并绑定到它吗?如果是这样,怎么样?

1 个答案:

答案 0 :(得分:14)

无法使用MvvmCross将ActionBar绑定到ICommands。但是当你按下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);
    }
}