Xamarin MVVM将Viewmodel属性交叉绑定到view属性

Xamarin MVVM将Viewmodel属性交叉绑定到view属性,xamarin,xamarin.android,mvvmcross,Xamarin,Xamarin.android,Mvvmcross,是否可以从视图更改viewmodel属性?我曾尝试过流畅绑定,但viewmodel属性始终为null 查看 public class UserProfileView : MvxActivity { private string _currentToken; public string CurrentToken { get; set; } protected override void OnCreate(Bundle bundle) { v

是否可以从视图更改viewmodel属性?我曾尝试过流畅绑定,但viewmodel属性始终为null

查看

    public class UserProfileView : MvxActivity
{

    private string _currentToken;
    public string CurrentToken { get; set; }
    protected override void OnCreate(Bundle bundle)
    {
        var accounts = AccountStore.Create(this).FindAccountsForService("Soundcloud").ToList();
        var set = this.CreateBindingSet<UserProfileView, UserProfileViewModel>();
        set.Bind(this).For(v => v.CurrentToken).To(vm => vm.UserToken).TwoWay();
        set.Apply();
        accounts.ForEach(account =>
        {
            CurrentToken = account.Properties["access_token"];
        });
        base.OnCreate(bundle);
        SetContentView(Resource.Layout.UsrProfile);
    }
}
    private string _userToken;
    public string UserToken
    {
        get { return _userToken;}
        set { _userToken = value; RaisePropertyChanged("UserToken"); Update();}
    }

最简单的方法是从
MvxActivity

公共类UserProfileView:MVX活动 然后简单地设置

ViewModel.CurrentToken=account.Properties[“访问令牌”];

这将回答“是否可以从视图更改viewmodel属性?”。但这并不使用数据绑定。如果您真的想使用数据绑定,您必须为它编写一个自定义绑定,在这种情况下可能会花费太多的精力

最简单的方法是从
MVX活动继承

公共类UserProfileView:MVX活动
然后简单地设置

ViewModel.CurrentToken=account.Properties[“访问令牌”];

这将回答“是否可以从视图更改viewmodel属性?”。但这并不使用数据绑定。如果您真的想使用数据绑定,您必须为它编写一个自定义绑定,在这种情况下可能会花费太多的精力

我会使用来自xml的(西藏?)绑定,通常是本地的:MvxBind=“CurrentToken UserToken”它总是试图获取UserToken,但我需要在ModelView中设置它。因此绑定是正确的,但值不在viewModel中。那么,问题是什么呢?可能是绑定无法工作,因为视图尚未设置。尝试在绑定集之前调用SetContentView()。检查输出窗口中是否存在可能的mvvmcross警告,我将使用xml的(西藏?)绑定,通常为local:MvxBind=“CurrentToken UserToken”它总是尝试获取UserToken,但是我需要在ModelView中设置它,所以绑定是正确的,但是值不在viewModel中。那么问题是什么呢?可能是绑定不起作用,因为视图尚未设置。尝试在绑定集之前调用SetContentView()。检查输出窗口中可能出现的mvvmcross警告我将在CS:GO会话后查看^CS:GO会话后查看^^