Search code examples
xamllistviewxamarin.formsdatagrid

Showing List to Data Grid


Hi I'm new to Xamarin and currently I have a project that requires me to display something like image below

screenshot

I already have a list of the items, and inside the list i have another list inside every item that contain "actualwork" and "plannedwork". But i dont know how to present i that way.

So i have a list that contain a list. And i want to display it like in the image. Any idea?

Thank you in advance


Solution

  •     <StackLayout HorizontalOptions="FillAndExpand">
    
            <ListView
                    Footer=" "
                    HasUnevenRows="True"
                    HeightRequest="{Binding WeekHeight}"
                    ItemsSource="{Binding WeekReports}"
                    SeparatorVisibility="None">
                <ListView.HeaderTemplate>
                    <DataTemplate>
                        <ContentView BackgroundColor="Beige">
                            <Grid Padding="0"
                                    HeightRequest="70"
                                    HorizontalOptions="FillAndExpand">
    
                                <Grid.ColumnDefinitions>
                                    <ColumnDefinition Width="*" />
                                    <ColumnDefinition Width="*" />
                                    <ColumnDefinition Width="*" />
                                    <ColumnDefinition Width="*" />
                                    <ColumnDefinition Width="*" />
                                    <ColumnDefinition Width="*" />
                                    <ColumnDefinition Width="*" />
                                    <ColumnDefinition Width="*" />
                                </Grid.ColumnDefinitions>
    
    
                                <Label Text="Sun" Grid.Column="1"/>
                                <Label Text="Mon" Grid.Column="2"/>
                                <Label Text="Tue" Grid.Column="3"/>
                                <Label Text="Wed" Grid.Column="4"/>
                                <Label Text="Thu" Grid.Column="5"/>
                                <Label Text="Fir" Grid.Column="6"/>
                                <Label Text="Sat" Grid.Column="7"/>
    
                            </Grid>
                        </ContentView>
                    </DataTemplate>
                </ListView.HeaderTemplate>
                <ListView.ItemTemplate>
                    <DataTemplate>
                        <ViewCell IsEnabled="False">
                            <Grid>
                                <Grid.ColumnDefinitions>
                                    <ColumnDefinition Width="*" />
                                    <ColumnDefinition Width="*" />
                                    <ColumnDefinition Width="*" />
                                    <ColumnDefinition Width="*" />
                                    <ColumnDefinition Width="*" />
                                    <ColumnDefinition Width="*" />
                                    <ColumnDefinition Width="*" />
                                    <ColumnDefinition Width="*" />
                                </Grid.ColumnDefinitions>
    
                                <Label Text="{Binding Work}" Grid.Column="0"/>
                                <Label Text="{Binding Value1}" Grid.Column="1"/>
                                <Label Text="{Binding Value2}" Grid.Column="2"/>
                                <Label Text="{Binding Value3}" Grid.Column="3"/>
                                <Label Text="{Binding Value4}" Grid.Column="4"/>
                                <Label Text="{Binding Value5}" Grid.Column="5"/>
                                <Label Text="{Binding Value6}" Grid.Column="6"/>
                                <Label Text="{Binding Value7}" Grid.Column="7"/>
    
                            </Grid>
                        </ViewCell>
                    </DataTemplate>
                </ListView.ItemTemplate>
    
            </ListView>
        </StackLayout>
    

    ItemSource Model Would be like this:

    public class Report{        
      public string Work { get; set; }
        public string value1 { get; set; }
        public string value2 { get; set; }
        public string value3 { get; set; }
        public string value4 { get; set; }
        public string value5 { get; set; }
        public string value6 { get; set; }
        public string value7 { get; set; }
    }