2016-05-05 9 views
0

次のコードでは、CategoryListアイテムをスピナーに表示できました。mvvmcrossのSpinnerのユーザーの選択を検出します

私の質問は、どのようにして選択できますか?

ViewModel.cs

public List<int> CategoryList 
{ 
    get { return new List<int> { 1,2,3,4,5,6,7,8,9,10 }; } 
} 

int _chosenCategory; 
public int ChosenCategory { 
    get { return _chosenCategory; } 
    set { SetProperty(ref _chosenCategory, value); 
    } 
} 

ViewModel.axml

<LinearLayout 
    android:layout_weight="1" 
    android:layout_width="0dp" 
    android:layout_height="match_parent"> 
    <mvvmcross.droid.support.v7.appcompat.widget.MvxAppCompatSpinner 
     android:layout_width="100dp" 
     android:layout_height="match_parent" 
     local:MvxItemTemplate="@layout/xxx" 
     local:MvxBind="ItemsSource CategoryList;SelectedItem ChosenCategory" /> 
</LinearLayout> 
+0

[スヴェン・マイケルSTUBE](https://stackoverflow.com/questions/37058772/detect-user-selection-from-spinner-in-mvvmcross#answer-37059047)の回答を使用して、してみてください'ChosenCategory'プロパティを更新して' INotifyPropertyChanged'を起動します。 'int _chosenCategory;パブリックint ChosenCategory {get {return _chosenCategory; }セット{SetProperty(ref _chosenCategory、value);} }} ' – Plac3Hold3r

+0

それもうまくいきませんでした。それは 'set'メソッドを呼び出さない。 – hotspring

答えて

7

あなたはSelectedItem

<mvvmcross.droid.support.v7.appcompat.widget.MvxAppCompatSpinner 
    android:layout_width="100dp" 
    android:layout_height="match_parent" 
    local:MvxItemTemplate="@layout/category_spinner" 
    local:MvxBind="ItemsSource CategoryList; SelectedItem ChosenCategory" /> 

を経由して、それを結合して、あなたはあなたSetuでこれを持っていることを確認することができますPクラス:

public class Setup : MvxAndroidSetup 
{ 
    // ... 

    protected override void FillTargetFactories(IMvxTargetBindingFactoryRegistry registry) 
    { 
     MvxAppCompatSetupHelper.FillTargetFactories(registry); 
     base.FillTargetFactories(registry); 
    } 
} 
+0

動作しませんでした。 – hotspring

+0

あなたはapp compatライブラリを正しく設定していないためです。私は答えにセットアップコードを追加しました。 –

+0

私は 'FillTargetFactories'メソッド' registry.RegisterFactory(newMvxCustomBindingFactory ( "MyItemSelected"、ビュー=>新しいMyItemSelectedBinding(view)))の中で次のようにします: ' – hotspring

関連する問題