首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何将MvxCommand连接到BottomBar?

如何将MvxCommand连接到BottomBar?
EN

Stack Overflow用户
提问于 2017-07-10 18:53:31
回答 1查看 126关注 0票数 1

我正在使用this库将BottomNavigationBar添加到我的项目中。我也在这个项目的框架中使用MvvmCross。不过,我不知道如何将MvxCommand绑定到我的BottomBar。有谁知道这是怎么做到的吗?

下面是我在ViewModel中使用的MvxCommand的大致外观:

代码语言:javascript
运行
AI代码解释
复制
public ICommand OnTabSelectedCommand 
{
    get { return New MvxCommand(() => OnTabSelected()); }
}

我的BottomBar创建如下所示:

代码语言:javascript
运行
AI代码解释
复制
    protected override void OnCreate(Bundle savedInstanceState)
    {
        base.OnCreate(savedInstanceState);

        var recycler = FindViewById<MvxRecyclerView>(Resource.Id.menuList);
        var layoutManager = new LinearLayoutManager(this);
        recycler.SetLayoutManager(layoutManager);
        recycler.NestedScrollingEnabled = false;


        var toolbar = FindViewById<Android.Support.V7.Widget.Toolbar>(Resource.Id.toolbarFinder);
        SetSupportActionBar(toolbar);

        _bottomBar = BottomBar.AttachShy((CoordinatorLayout)FindViewById(Resource.Id.ListCoordinator),
                         FindViewById(Resource.Id.menuList), savedInstanceState);

        _bottomBar.SetItems(new[]
              { new BottomBarTab(Resource.Drawable.ic_recents, "Recents"),
                new BottomBarTab(Resource.Drawable.ic_favorites, "Favorites"),
                new BottomBarTab(Resource.Drawable.ic_nearby, "Nearby") }
            );

        _bottomBar.SetOnMenuTabClickListener(this);

        _bottomBar.SetActiveTabColor(Color.Red);

        _bottomBar.MapColorForTab(0, "#7B1FA2");
        _bottomBar.MapColorForTab(1, "#FF5252");
        _bottomBar.MapColorForTab(2, "#FF9800");
    }

    public void OnMenuTabSelected(int menuItemId)
    {
        // Do something
    }

    public void OnMenuTabReSelected(int menuItemId)
    {
        // Do Something
    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-12 15:23:40

如果您像这样声明您的活动:

代码语言:javascript
运行
AI代码解释
复制
public class MyView : MvxActivity<MyViewModel>

您将能够访问类型为"MyViewModel“的属性"ViewModel”。

然后,您只需使用以下命令调用您的命令:

代码语言:javascript
运行
AI代码解释
复制
ViewModel.OnTabSelectedCommand.Execute();

此调用应与切换命令一起包含在您的:

代码语言:javascript
运行
AI代码解释
复制
public void OnMenuTabSelected(int menuItemId)
{
    // Do something
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45019667

复制
相关文章

相似问题

领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文