Android 可在MVVMCross中单击的文本视图
我在Android 可在MVVMCross中单击的文本视图,android,xamarin,mvvmcross,Android,Xamarin,Mvvmcross,我在基本视图.axml中有浮动按钮 <FrameLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingBottom="22dp" android:paddingRight="22dp" android:layout_alignParentBottom="true" android:layout_alignPa
基本视图.axml中有浮动按钮
<FrameLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingBottom="22dp"
android:paddingRight="22dp"
android:layout_alignParentBottom="true"
android:layout_alignParentEnd="true">
<ImageButton
android:id="@+id/addButton"
android:layout_width="56dp"
android:layout_height="56dp"
android:src="@drawable/ic_add_white_24dp" />
</FrameLayout>
在基本视图.cs中,我有一个click事件,它从视图底部触发一个片段,带有选项(添加一个新的人和新的计算)
var addButton=view.findviewbyd(Resource.Id.addButton);
添加按钮。单击+=OnAddButton单击;
无效OnAddButtonClick(对象发送方,System.EventArgs e)
{
var dialog=新的CardDialogView();
显示(((MainView)活动).SupportFragmentManager,“CardDialogView”);
}
cardialogview.axml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#FFFFFF">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawableLeft="@drawable/dash_add_computer"
android:textColor="@color/primary_text"
android:textSize="16sp"
android:text="New Calculation"
local:MvxBind="Click NewCalculationCommand"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawableLeft="@drawable/dash_add_head"
android:drawablePadding="28dp"
android:textColor="@color/primary_text"
android:textSize="16sp"
android:text="New Person" />
</LinearLayout>
我的问题是如何使TextView可单击,并知道在mvvmcross中单击了哪个TextView
cardialogview.cs
public class CardDialogView : MvxDialogFragment<CardDialogViewModel>
{
public override Dialog OnCreateDialog(Bundle savedState)
{
.....
return dialog;
}
}
公共类CardDialogView:MvxDialogFragment
{
公共覆盖对话框OnCreateDialog(Bundle savedState)
{
.....
返回对话框;
}
}
CardDialogViewModel.cs
public class CardDialogViewModel : MvxViewModel
{
public ICommand NewCalculationCommand
{
get
{
// it does not come here!
return new MvxCommand(() => ShowViewModel<NewItemViewModel>(new { date = DateTime.Now }));
}
}
}
公共类CardDialogViewModel:MvxViewModel
{
公共ICommand NewCalculationCommand
{
得到
{
//它不来这里!
返回新的MvxCommand(()=>ShowViewModel(new{date=DateTime.Now}));
}
}
}
您可以绑定文本视图单击,就像按钮单击一样:
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawableLeft="@drawable/dash_add_computer"
android:textColor="@color/primary_text"
android:textSize="16sp"
local:MvxBind="Click NewCalculationCommand"
android:text="New Calculation" />
对于第二个textview,将其绑定到另一个命令。这样,当调用相应的命令时,您将知道是哪个textview触发了它。您可以绑定textview单击,就像按钮单击一样:
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawableLeft="@drawable/dash_add_computer"
android:textColor="@color/primary_text"
android:textSize="16sp"
local:MvxBind="Click NewCalculationCommand"
android:text="New Calculation" />
对于第二个textview,将其绑定到另一个命令。这样,当调用相应的命令时,您将知道是哪个textview触发了它。谢谢Giorgi,我如何知道单击了哪个textview?太好了!然后我需要为片段设置
CardDialogViewModel
,对吗?@HotSping:是的,您可以将片段绑定到viewmodel@hotspring:输出窗口中是否有任何指示问题原因的内容?我在命令中添加了断点,但它没有出现。谢谢Giorgi,我怎么知道点击了哪个文本视图?太好了!然后我需要为片段设置CardDialogViewModel
,对吗?@HotSping:是的,您可以将片段绑定到viewmodel@hotspring:输出窗口中是否有指示问题原因的内容?我在命令中输入了断点,但没有出现。