Xamarin MVVM将Viewmodel属性交叉绑定到view属性
是否可以从视图更改viewmodel属性?我曾尝试过流畅绑定,但viewmodel属性始终为null 查看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
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会话后查看^^