How to bind an ObservableCollection with inner collection to DataGrid

Hello

I need bind ObservableCOllection inner collection to sfdatagrid. ​I've triedthe way i showed below, but it doesn't work.

MODLES

 public class Item

    {

        public int Id { get; set; }

        public string Name { get; set; }

        public decimal Amount { get; set; }

    }


 public class Person

    {

        public int Id { get; set; }

        public string Name { get; set; }

        public string Lastname { get; set; }

        public int Age { get; set; }

    }



public class PersonItems

    {

        public Person Person { get; set; }

        public ICollection<Item> Items { get; set; }

    }


VieModel

private ObservableCollection<PersonItems> _personItems;

public ObservableCollection<PersonItems> PersonItems

        {

            get { return _personItems; }

            set {

                _personItems = value;

            }

        }


XAML

<Syncfusion:SfDataGrid x:Name="PeopleList"

                               AutoGenerateColumns="true"

                               SelectionMode="Multiple"

                               Background="Bisque"

                       ItemsSource="{Binding PersonItems.Items}"

                     >

            <Syncfusion:SfDataGrid.Columns>


                <Syncfusion:GridTextColumn MappingName="Item.Name"/>

                <Syncfusion:GridTextColumn MappingName="Item.Amount"/>

            </Syncfusion:SfDataGrid.Columns>


        </Syncfusion:SfDataGrid>


3 Replies

VS Vijayarasan Sivanandham Syncfusion Team August 20, 2021 12:33 PM UTC

Hi James,

Thank you for contacting Syncfusion Support.

Based on provided information we have prepared the sample for achieve your requirement.

 

For more information related to Data Binding, please refer the user guide documentation, 

 

Please let us know if you have any concerns in this. 

Regards, 
Vijayarasan S


JA James replied to Vijayarasan Sivanandham August 20, 2021 08:15 PM UTC

Thank you, thats works good for inner collection. How to combine it with master view? When i try to add a Person information the inner collection doesn't show.


I tried to modify code but it doesnt work


 <syncfusion:SfDataGrid x:Name="PeopleList"

                               AutoGenerateColumns="False"

                               SelectionMode="Multiple"

                               SelectionUnit="Row"

                               ItemsSource="{Binding PersonItems}">

            <syncfusion:SfDataGrid.Columns>

                <syncfusion:GridTextColumn MappingName="Person.Name"/>

                <syncfusion:GridTextColumn MappingName="Person.Age"/>

            </syncfusion:SfDataGrid.Columns>


            <syncfusion:SfDataGrid.DetailsViewDefinition>

                <syncfusion:GridViewDefinition RelationalColumn="Name">

                    <syncfusion:GridViewDefinition.DataGrid>

                        <syncfusion:SfDataGrid x:Name="FirstLevelNestedGrid"

                                               ItemsSource="{Binding PersonItems[0].Items}"

                                               AutoGenerateColumns="False">

                            <syncfusion:SfDataGrid.Columns>

                                <syncfusion:GridTextColumn MappingName="Item.Name"/>

                                <syncfusion:GridTextColumn MappingName="Item.Amount"/>

                            </syncfusion:SfDataGrid.Columns>

                        </syncfusion:SfDataGrid>

                    </syncfusion:GridViewDefinition.DataGrid>

                </syncfusion:GridViewDefinition>

            </syncfusion:SfDataGrid.DetailsViewDefinition>

        </syncfusion:SfDataGrid>



VS Vijayarasan Sivanandham Syncfusion Team August 23, 2021 01:41 PM UTC

Hi James,

Thanks for the update.

Based on provided information we suspect that your requirement is hierarchical data in the form of nested tables using Master-Details View. Please refer the below given help documentation to know more about creating the data model with relations,

UG Link: https://help.syncfusion.com/wpf/datagrid/master-details-view#create-the-data-model-with-relations 
For more information, please refer the below knowledge base documentation link,

KB Link:
https://www.syncfusion.com/kb/12369/how-to-create-wpf-nested-datagrid-view-master-details-view-in-wpf 
Please let us know if you have any concerns in this.

Regards,
Vijayarasan S 


Loader.
Up arrow icon