2016-03-28 11 views
2

コントローラにローカル文字列変数があり、ViewModel(コア)のプロパティにバインドしたいと思います。 。私は試しました:MVVMCross 4とXamarin.iOSを使用して、VMのプロパティをコントローラのローカルプロパティにバインドすることは可能ですか

private string culture; 
var bindings = this.CreateBindingSet<OnBoardingViewController, OnBoardingViewModel>(); 
bindings.Bind(culture).For(x => x).To(viewmodel => viewmodel.LanguageCode); 
bindings.Apply(); 

それは成功しません。 MvvmCrossまたはコンポーネントのプロパティを使用してローカル変数をバインドすることはできますか?

答えて

3

あなたのViewControllerにプロパティMyPropertyを作成して、それが好きバインドすることができます。

var bindings = this.CreateBindingSet<OnBoardingViewController, OnBoardingViewModel>(); 
bindings.Bind(this).For(x => x.MyProperty).To(viewmodel => viewmodel.LanguageCode); 
bindings.Apply(); 

MvvMCrossは、プロパティ名を抽出するFor中での発現を必要とします。そして、この式は、x => x.Property、またはx => x.Property.SubPropertyなどの形式でなければなりません。そして、2番目の問題は、ローカル変数がその名前が示唆するようにローカルであることです。あなたがその機能を去ったとき、彼らはきれいになるでしょう。だから私は強く推薦するプロパティを追加することをお勧めします。

関連する問題