我在Click
的项目上绑定MvxGridView
事件时遇到问题(我正在使用ItemClick
绑定)。
一切都很好,很好。当我使用TextView
我的GoClick
方法被正确解雇时。但是当我在TextView
中将Button
更改为ItemTemplateView
时,则不会再调用GoClick
方法。
根据this回答(选项编号1),一切都应该正常。但在Button
案例中却没有。
任何帮助表示赞赏,我被困在这里。
我的viewModel:
public class MyViewModel : MvxViewModel
{
private IEnumerable<MyListItem> items;
public MyViewModel()
{
this.items = new List<MyListItem>
{
new MyListItem {Name = "Item1"},
new MyListItem {Name = "Item2"},
};
}
public IEnumerable<MyListItem> Items
{
get { return this.items; }
}
public ICommand SelectItem
{
get { return new MvxCommand<MyListItem>(this.GoClick);}
}
public void GoClick(MyListItem item)
{
//doSomething
}
}
我的MvxGridView
布局:
<?xml version="1.0" encoding="utf-8" ?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:local="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="@color/black"
>
<Mvx.MvxGridView
android:layout_width="300dp"
android:layout_height="match_parent"
android:gravity="center"
android:horizontalSpacing="10dp"
android:numColumns="3"
android:stretchMode="columnWidth"
android:verticalSpacing="10dp"
local:MvxItemTemplate="@layout/itemtemplateview"
local:MvxBind="ItemsSource Items; ItemClick SelectItem"
/>
</LinearLayout>
我的ItemTemplateView
(适用于TextView
)
<?xml version="1.0" encoding="utf-8" ?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:local="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
>
<TextView
android:layout_height="wrap_content"
android:layout_width="match_parent"
local:MvxBind="Text Name"
/>
<!-- CLICK ON THIS BUTTON DOES NOT WORK -->
<!--
<Button
android:layout_height="wrap_content"
android:layout_width="match_parent"
local:MvxBind="Text Name"
/>
-->
</LinearLayout>
答案 0 :(得分:1)
如果您想要按钮的click事件,并且您正在使用“Swiss”绑定,请使用:
local:MvxBind="Click DoNameClick"/>
而不是
local:MvxBind="Text Name"
查看文档:{{3}}
注意 - 您必须在ViewModel中使用公共“DoNameClick”getter!