MvvmCross绑定Viewmodel属性以查看属性

时间:2016-04-08 09:36:28

标签: 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)
    {
        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();}
    }

1 个答案:

答案 0 :(得分:2)

最简单的方法是继承MvxActivity<TViewModel>

public class UserProfileView : MvxActivity<UserProfileViewModel>

然后只需设置

ViewModel.CurrentToken = account.Properties["access_token"];

这会回答您的&#34;是否可以从视图中更改viewmodel属性?&#34; 。但是这并没有使用数据绑定。如果你真的想要使用数据绑定,你必须为它编写一个自定义绑定,在这种情况下可能需要付出太多努力。