4

如果我有以下MvxListView定義視圖:MvvmCross:動態項目選擇的模板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。

回答

5

您必須使用自定義適配器來執行此操作。

一些樣本顯示如何使用細胞類型選擇。請參閱:

例如從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平臺來說,也應該被添加到現有的多態適配器樣品的優化 - 包括更好的convertView重用使用GetItemViewType - 見https://github.com/slodge/MvvmCross/issues/333

這個問題被鏈接到:

+0

非常感謝Stuart。 –

+0

我檢查了示例,它包含優化。所以你可以關閉這個問題:) – Softlion