Как привязать элемент вложенного списка в коллекции в xamarin - PullRequest
0 голосов
/ 01 августа 2020

Я новичок в xamarin. У меня возникают трудности с привязкой моего списка в xamarin CollectionView. Я получаю ниже json из API

{
  "OK": 200,
  "status": "success",
  "data": [
    {     
      "Category": "Category 1",
      "List": [
        {
          "SubItem": "The A1"
        },
         {
          "SubItem": "The A2"
        }
      ]
    },
    {     
      "Category": "Category 2",
      "List": [
        {
          "SubItem": "The C1 sub"
        },
         {
          "SubItem": "The C2 sub"
        }
      ]
    }
  ]
}

1 Ответ

0 голосов
/ 03 августа 2020

В вашем проекте должны быть две модели и viewModel, подобные этой:

public partial class MainPage : ContentPage
{
    public MainPage()
    {
        InitializeComponent();

        BindingContext = new viewModel();
}

public class subModel
{
    public string SubItem { get; set; }
}
public class Data
{
    public string Category { get; set; }
    public IList<subModel> List { get; set; }

}

public class viewModel {

   public ObservableCollection<Data> items = new ObservableCollection<Data>();

    public viewModel() { 
        
    }

}

В xaml привязать к сгруппированному CollectionView :

<CollectionView ItemsSource="{Binding items}"
            IsGrouped="true">

    <CollectionView.ItemTemplate>
        <DataTemplate>
            <Label Text="{Binding SubItem}"/>
        </DataTemplate>
    </CollectionView.ItemTemplate>

    <CollectionView.GroupHeaderTemplate>
        <DataTemplate>
            <Label Text="{Binding Category}" />
        </DataTemplate>
    </CollectionView.GroupHeaderTemplate>
</CollectionView>
...