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 は、列挙された名前 ( CircleSquareTriangle) を各項目のテキストとして表示します。ビュー モデルを変更せずに、テンプレートを使用しない場合に MvxSpinner がデフォルトで表示するのと同じものを表示するバインディングをテンプレートに作成することは可能ですか? もしそうなら、そのバインディングはどのように見えますか? それが不可能な場合、この結果を達成するための最善の方法は何ですか?

4

1 に答える 1

3

テンプレートで、テンプレートが使用されていない場合に MvxSpinner がデフォルトで表示するものと同じものを表示しますか? もしそうなら、そのバインディングはどのように見えますか? それが不可能な場合、この結果を達成するための最善の方法は何ですか?

デフォルトのテンプレートはToString()、オブジェクトで使用されます。

Whole Object同じことを達成するために、バインディングを使用できます。wikiから、パスに空のパスまたは単一のピリオドを使用して指定できるはずです。最近、空の Path バインディングに関するいくつかの問題が報告されているので、ピリオドを使用することをお勧めします。

<?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 に答える