0

我从以下代码中提取了这部分代码: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 默认显示的相同内容?如果是这样,那个绑定会是什么样子?如果这不可能,那么实现这一结果的最佳方法是什么?

4

1 回答 1

3

在模板中,当没有使用模板时,它显示的内容与默认情况下 MvxSpinner 显示的内容相同吗?如果是这样,那个绑定会是什么样子?如果这不可能,那么实现这一结果的最佳方法是什么?

对象上使用的默认模板ToString()

要实现同样的事情,您可以使用Whole Object绑定。从wiki,您应该能够指定使用空路径或路径的单个句点。由于我们最近看到了一些关于空路径绑定的问题,我建议使用句点:

<?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>
于 2013-08-27T09:29:55.113 回答