Search code examples
c#sqlitexamarincollectionview

How to show data in CollectionView from SQLite database in xamarin?


I want to get url and some text from database to collection view and show picture with that label. How can i connect database data with CollectionView and show it?

There is my Model

public class Airplane
{
    [PrimaryKey]
    public int Id { get; set; }
    public string Plane { get; set; }
    public string Airline { get; set; }
    public string Livery { get; set; }
    public string Registration { get; set; }
    public string Airport { get; set; }
    public string Date { get; set; }
    public string Comment { get; set; }
    public string Url { get; set; }        
}

and there is XAML code

<Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="*"/>
        </Grid.RowDefinitions>
        <CollectionView>
            <CollectionView.ItemTemplate>
                <DataTemplate>
                    <Grid>
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="100"/>
                            <ColumnDefinition Width="*"/>
                        </Grid.ColumnDefinitions>

                        <Image Source=""
                               HeightRequest="200"
                               Grid.Column="0"/>
                        <Label Text=""
                               Grid.Column="1"/>
                    </Grid>
                </DataTemplate>
            </CollectionView.ItemTemplate>
        </CollectionView>
    </Grid>

Solution

  • get your data

    var data = db.Table<Airplane>().ToList();
    

    assign it to ItemsSource

    myCollectionView.ItemsSource = data;
    

    add binding expressions to your template

    <Image Source="{Binding Url}" ... />
    <Label Text="{Binding Plane}" ... />