5

如果我有以下 MvxListView 定义的视图:

<Mvx.MvxListView
    android:layout_marginTop="10px"
    android:textFilterEnabled="true"
    android:choiceMode="singleChoice"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:textSize="20dp"
    local:MvxBind="ItemsSource Data; ItemClick LaunchCapabilityViewCmd"
    local:MvxItemTemplate="@layout/itemtemplate1" />

不是将 MvxItemTemplate 硬编码为 itemtemplate1,而是可以根据我要在此视图中显示的数据类型动态设置它?我正在寻找与 WPF 的 DateTemplateSelector 类似的功能。

TIA。

4

1 回答 1

7

您必须使用自定义适配器来执行此操作。

一些示例展示了如何使用细胞类型选择。看:

例如来自PolymorphicListItemTypesView.cs

        protected override View GetBindableView(View convertView, object source, int templateId)
        {
            if (source is Kitten)
                templateId = Resource.Layout.ListItem_Kitten;
            else if (source is Dog)
                templateId = Resource.Layout.ListItem_Dog;

            return base.GetBindableView(convertView, source, templateId);
        }

对于 Android,还有一个优化应该添加到现有的多态适配器示例中 - 包括使用GetItemViewType以更好地convertView重用 - 请参阅https://github.com/slodge/MvvmCross/issues/333

这个问题与:

于 2013-07-18T06:54:22.357 回答