我已经玩了一段时间的 monodroid/monotouch,并决定从 monocross 跳到 mvvmcross,我遇到了一些问题。
我有一个域模型,它包含一个子属性,它是另一个域对象的列表。如果你愿意的话,有很多。我要做的是显示聚合根对象并允许用户填写子对象的详细信息。
public class objA
{
public List<objB> mySubObjs
}
我很容易使用 MvxBindableListView 将其连接起来。除了我无法绑定到 objA.mySubObjs 之外,我必须在 ViewModel 中将列表提升到一个级别并绑定到它?无论如何,我面临的问题是我的列表项模板看起来有点像这样
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal"
android:layout_marginTop="2dip"
android:layout_marginBottom="2dip">
<TextView
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:text="a)"
android:textAppearance="?android:attr/textAppearanceSmall" />
<EditText xmlns:local="http://schemas.android.com/apk/res/x.x.x.x"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
local:MvxBind="{'Text':{'Path':'Name'}}" />
</RelativeLayout>
渲染得很好,但只是不可用。当我单击 editText 控件时,会调出软键盘,这样做会失去焦点。我已经阅读了几篇关于 ListView 中的 EditText 的文章不太好用。
因此,我尝试通过绑定到特定项目(即 objA.mySubObjs[0].Name)手动构建列表视图,但这似乎并没有反映在 ViewModel 中。
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Question"
android:textAppearance="?android:attr/textAppearanceSmall"
local:MvxBind="{'Text':{'Path':'Items[0].Name'}}" />
我有点茫然,并不想走在我的 ViewModel 中扁平化列表以适应 Android 视图的路线。
任何帮助,将不胜感激