C# 如何将视图中的命令绑定到MvvmCross中的ViewModel

C# 如何将视图中的命令绑定到MvvmCross中的ViewModel,c#,xamarin.android,mvvmcross,C#,Xamarin.android,Mvvmcross,我有一个android视图,我使用的是LegacyBar: public class BaseView : MvxActivity { public override void SetContentView(int layoutResId) { base.SetContentView(layoutResId); var bar = FindViewById<LB.LegacyBar>(Resource.Id.actionbar);

我有一个android视图,我使用的是LegacyBar:

public class BaseView : MvxActivity
{
    public override void SetContentView(int layoutResId)
    {
        base.SetContentView(layoutResId);
        var bar = FindViewById<LB.LegacyBar>(Resource.Id.actionbar);
        bar.SetHomeLogo(Resource.Drawable.Icon);
        var attr = this.GetType()
            .GetCustomAttributes(typeof(ActivityAttribute), true)
            .FirstOrDefault() as ActivityAttribute;
        if (attr != null)
            bar.Title = attr.Label;
        bar.SetHomeAction(new ActionLegacyBarAction(ApplicationContext, doHomeAction, Resource.Drawable.Icon));
    }

    public ICommand homeActionClicked { get; set; }
    private void doHomeAction()
    {
        if (homeActionClicked != null && homeActionClicked.CanExecute(null))
            homeActionClicked.Execute(null);
    }
}
将此视图中定义的homeActionClicked绑定到其ViewModel中的命令的正确方法是什么?
或者,我应该创建一个自定义控件,并将条放在其中,然后绑定控件的命令?

您可以在视图中将ViewModel作为属性引用,以便访问它的属性,并将命令从视图设置为ViewModel

protected MvvMCore.Core.ViewModels.NavigationBarViewModel NavigationBarViewModel {
            get{ return base.ViewModel as MvvMCore.Core.ViewModels.NavigationBarViewModel; }
        }

可以在视图中将ViewModel作为属性引用,以便访问其属性,并将命令从视图设置为ViewModel

protected MvvMCore.Core.ViewModels.NavigationBarViewModel NavigationBarViewModel {
            get{ return base.ViewModel as MvvMCore.Core.ViewModels.NavigationBarViewModel; }
        }

对于此属性,您可以按照@Chris的建议执行-使用base.ViewModel和casting来访问ViewModel,或者如果您想在OnCreate内部执行绑定,则可以使用FluentBinding-例如


对于此属性,您可以按照@Chris的建议执行-使用base.ViewModel和casting来访问ViewModel,或者如果您想在OnCreate内部执行绑定,则可以使用FluentBinding-例如


对不起,这是我一个项目的代码片段。这是我的MvvMCross项目的名称空间,它是与Android项目链接的核心。如果将此代码放置在活动中的某个位置,则可以在视图中访问viewmodel。希望这有帮助:谢谢。这或多或少是我想我会做的。我想就我的应用程序而言,我会采用流畅的方法。对不起,这是我一个项目的代码片段。这是我的MvvMCross项目的名称空间,它是与Android项目链接的核心。如果将此代码放置在活动中的某个位置,则可以在视图中访问viewmodel。希望这有帮助:谢谢。这或多或少是我想我会做的。不过,我认为就我的应用程序而言,我会采用流畅的方法。