Your Privacy Matters: We use our own and third-party cookies to improve your experience on our website. By continuing to use the website we understand that you accept their use. Cookie Policy
170
Display Nested Fields for a Row
posted

Hello,

I'd like to display a "nested panel" when a User clicks on a Row in the xamDataGrid.

 

This is the code I tried to use:

                            <igDp:XamDataGrid.FieldLayouts>
                                <igDp:FieldLayout Key="MyParent" >
                                    <igDp:FieldLayout.FieldSettings>
                                        <igDp:FieldSettings ExpandableFieldRecordHeaderDisplayMode="AlwaysDisplayHeader"/>    
                                    </igDp:FieldLayout.FieldSettings>
                                    <igDp:FieldLayout.Fields>
                                        <igDp:Field Name="CountryCode" Label="CountryCode" />
                                        <igDp:Field Name="CountryName" Label="CountryName" />
                                        <igDp:Field Name="Detail1" Label="Detail1" />
                                        <igDp:Field Name="Detail2" Label="Detail2" />
                                        <igDp:Field Name="Detail3" Label="Detail3" />
                                        <igDp:Field Name="MyDetails" Label="MyDetails" Visibility="Hidden" />
                                    </igDp:FieldLayout.Fields>
                                </igDp:FieldLayout>
                                <igDp:FieldLayout Key="MyDetails" ParentFieldLayoutKey="MyParent" KeyMatchingEnforced="True">
                                    <igDp:FieldLayout.Settings>
                                        <igDp:FieldLayoutSettings />
                                    </igDp:FieldLayout.Settings>
                                    <igDp:FieldLayout.Fields>
                                        <igDp:Field Name="DetailCode" Label="DetailCode" />
                                        <igDp:Field Name="DetailText" Label="DetailText" />
                                    </igDp:FieldLayout.Fields>
                                </igDp:FieldLayout>
                            </igDp:XamDataGrid.FieldLayouts>

 

And this is how my class looks like:


    public class CountryRowViewModel
    {
        public int CountryCode { get; set; }
        public string CountryName { get; set; }
        public string MyHiddenProperty { get; set; } /* I don't want to display this*/
        public string Detail1 { get; set; }
        public string Detail2 { get; set; }
        public string Detail3 { get; set; }

        public DetailsViewModel MyDetails { get; set; }

        public class DetailsViewModel
        {
            public int DetailCode { get; set; }
            public string DetailText { get; set; }
        }
    }

I want to display the nested "field layout" without using AutoGenerateColumns=true, since there will be some custom additions. Any idea how to do that?

Also how would I have to change the code to display e.g. a StackPanel or a TabControl (for Charts) instead of a nested grid?

 

Thanks a lot!

Regards,

Andreas

 

Parents
No Data
Reply
  • 69686
    posted

    Hello Andreas,

    You have defined the FieldLayouts and their Fields, but as you are using AutoGenerateFields-True, you do not need to do that. Also, I notice that you have two field layouts, but your class does not have a collection to display in a nested fieldlayout. DetailsViewModel class is no a IEnumerable, so you would have to use UnboundFields to show DetailCode and DetailText. The XamDataGrid will not be able automatically to do that for you. If you want a hierarchical XamDataGrid, you have to make the DetailsViewModel a collection. 

    Also, I was not able to understand how you want to show a "nested panel" and where. The ExpandableFieldRecordPresenter is probably what you want to retemplate or style. You would probably also need to set UseNestedPanels from the ViewSettings to true.

Children