listView中的单选按钮不会在Xamarin.Android中触发

时间:2015-09-07 06:05:53

标签: xamarin xamarin.android mvvmcross

我已经声明了一个像这样的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 
    }

0 个答案:

没有答案