2016-07-05 54 views
0

我有以下xmlViewModel源代碼。我正在研究radiogroup,我有兩個單選按鈕(男性和女性)。最初,我想要選擇Male單選按鈕(默認)。但是,我目前的實現並沒有顯示任何單選按鈕被選中。他們兩個都顯示爲未selected.I現在用MvvmCross版本4.0MVVMCross中的RadioGroup實現

XML

<mvvmcross.droid.support.v7.appcompat.widget.MvxAppCompatRadioGroup 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal" 
    local:MvxItemTemplate="@layout/item_radio" 
    local:MvxBind="ItemsSource Items;ItemSelected SelectedItem" /> 

Item_radio.xml

<?xml version="1.0" encoding="utf-8"?> 
<RadioButton xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:local="http://schemas.android.com/apk/res-auto" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:textSize="12sp" 
    local:MvxBind="Text Caption" /> 

ViewModel.cs

private List<Thing> _items = new List<Thing>() 
{ 
    new Thing("Male"), 
    new Thing("Female"), 
}; 

public List<Thing> Items 
{ 
    get { return _items; } 
    set { _items = value; RaisePropertyChanged(() => Items); } 
} 

private Thing _selectedItem = new Thing("Male"); 
public Thing SelectedItem 
{ 
    get 
    { 
    return _selectedItem; 
    } 
    set 
    { 
    _selectedItem = value; 
    RaisePropertyChanged(() => SelectedItem); 
    } 
} 

Setup.cs

registry.RegisterFactory(new MvxCustomBindingFactory<MvxAppCompatRadioGroup>("ItemSelected", view => new MyRadioItemSelectedBinding(view))); 
+0

那麼你的 「item_radio」 佈局模板是什麼樣子? – Plac3Hold3r

+0

我已添加,請檢查更新 – hotspring

回答

2

這個問題似乎是你被綁定到ItemSelected,而不是SelectedItem

你的XML佈局控制應該是:

<mvvmcross.droid.support.v7.appcompat.widget.MvxAppCompatRadioGroup 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal" 
    local:MvxItemTemplate="@layout/item_radio" 
    local:MvxBind="ItemsSource Items; SelectedItem SelectedItem" /> 
+0

請檢查我的Setup.cs,只是在問題中添加。 – hotspring

+0

@hotspring,MyRadioItemSelectedBinding是什麼樣的?是否有一個特定的原因,您需要使用已包含SelectedItem的自定義綁定? – Plac3Hold3r

+0

我剛剛使用了'SelectedItem',它已經工作了!我已經更新MvvmCross 4.0到4.2.1和使用'SelectedItem' – hotspring