我从以下代码中提取了这段代码:https://github.com/slodge/MvvmCross-Tutorials/blob/master/MoreControls/MoreControls.Droid/Resources/Layout/FirstView.axml
<?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:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<Mvx.MvxSpinner
android:layout_width="match_parent"
android:layout_height="?android:attr/listPreferredItemHeight"
local:MvxBind="ItemsSource Shapes; SelectedItem Current" />
<!--
could be customised using
local:MvxDropDownItemTemplate="@layout/spinner_dropdownitem_shape"
local:MvxItemTemplate="@layout/spinner_item_shape"
-->
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="40dp"
local:MvxBind="Text Current" />
<MC.ShapeView
android:layout_width="fill_parent"
android:layout_height="300dp"
local:MvxBind="Shape Current" />
</LinearLayout>
评论提到可以通过传递MvxDropDownItemTemplate和MvxItemTemplate布局来自定义外观。我们假设我们将对这两个模板使用这个简单的布局:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:local="http://schemas.android.com/apk/res/Project.Ui.Droid"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
local:MvxBind="Text ???????" />
</FrameLayout>
MvxSpinner将枚举的名称(Circle
,Square
,Triangle
)显示为每个项目的文本。在不更改视图模型的情况下,是否可以在模板中创建一个绑定,该绑定显示MvxSpinner在没有使用模板时默认显示的相同内容?如果是这样,那个绑定会是什么样的?如果那是不可能的,那么实现这一结果的最佳方法是什么?
答案 0 :(得分:3)
在模板中,显示MvxSpinner在没有使用模板时默认显示的相同内容?如果是这样,那个绑定会是什么样的?如果那是不可能的,那么实现这一结果的最佳方法是什么?
默认模板在对象上使用ToString()
。
要实现同样的目的,您可以使用Whole Object
绑定。从the wiki开始,您应该可以使用空路径或路径的单个Period指定。由于我们已经看到some issues reported recently具有空路径绑定,因此我建议使用句点:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:local="http://schemas.android.com/apk/res/Project.Ui.Droid"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
local:MvxBind="Text ." />
</FrameLayout>