我已经声明了一个像这样的listView:
<Mvx.MvxListView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/listview"
local:MvxBind="ItemsSource QuestionList; ItemClick ButtonClick"
local:MvxItemTemplate="@layout/item_questions"
android:clickable="true"
android:layout_margin="10dp"
android:layout_marginBottom="20dp" />
现在我的项目模板包含选择模式问题,这些问题根据要求进行渲染,但每当我点击任何单选按钮时,它都不会触发任何事件。我从单选按钮中取出了所有选定的值。 以下是我的项目模板代码:
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/radioButton1"
android:textColor="#000000"
android:clickable="true"
local:MvxBind="Text OptionA; Click ItemChecked" />
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#000000"
local:MvxBind="Text OptionB; Click ItemChecked"
android:id="@+id/radioButton2" />
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#000000"
local:MvxBind="Text OptionC; Click ItemChecked"
android:id="@+id/radioButton3" />
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#000000"
local:MvxBind="Text OptionD; Click ItemChecked"
android:id="@+id/radioButton4" />
</RadioGroup>
我还按照建议实现了包装类。下面是我的包装类代码:
public class ListViewWrapper
{
Question _question;
QuestionsViewModel _parent;
public ListViewWrapper()
{
}
public ListViewWrapper(Question radio, QuestionsViewModel parent)
{
_question = radio;
_parent = parent;
}
public IMvxCommand ItemChecked
{
get
{
return new MvxCommand(() => _parent.btnClick(_question));
}
}
public Question Item
{
get
{
return _question;
}
}
}
这是ViewModel:
private IMvxCommand _buttonClick;
public IMvxCommand ButtonClick
{
get
{
_buttonClick = _buttonClick ?? new MvxCommand<Question>(btnClick);
return _buttonClick;
}
}
public void btnClick(Question item)
{
//Do something
}