2016-04-08 19 views
0

viewmodelプロパティーをビューから変更することはできますか?私は流暢な結合しようとしたが、きたのviewmodelプロパティ常にnullMvvmCrossバインドViewmodelプロパティからプロパティーを表示

ビュー

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); 
    } 
} 

のModelView

private string _userToken; 
    public string UserToken 
    { 
     get { return _userToken;} 
     set { _userToken = value; RaisePropertyChanged("UserToken"); Update();} 
    } 
+0

私は行くだろうからXMLバインディング通常ローカル(チベット?):MvxBind =「CurrentTokenはUserToken」 – Nanoc

+0

それはいつもだはUserTokenを取得しようとしますが、私はのModelView –

+0

でそれを設定する必要がありますよだから、結合は正しいですが、値がviewModelにない場合、問題は何ですか? – Nanoc

答えて

2

最も簡単な方法は、MvxActivity<TViewModel>

public class UserProfileView : MvxActivity<UserProfileViewModel> 
から継承されますその後、

とは、単にこれはあなたの答え

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

を設定し、「それはビューからのviewmodelプロパティを変更することは可能ですか?」。しかし、これはデータバインディングを使用しません。データバインディングを本当に使用したい場合は、カスタムバインドを作成する必要があります。この場合、多大な労力がかかる可能性があります。

+0

うん、それは動作します。どうもありがとう。 –

+0

私のCSの後で見てみましょう:セッションを行って^^ –

関連する問題