I have defined the columns of my XamDataGrid using FieldSettings and FieldLayout. But the problem is, that the grid takes all the properties from the "inserted" objects and displays them as columns. This means, that I have to create a specific ViewModel-class for the DataGrid, which is a bit annoying.
The standard WPF DataGrid has an attribute called AutoGenerateColumns. Does the XamDataGrid have something like this? I can't find it...
Hello Christian,
Thank you for your post. I have been looking through it and I suggest you use AutoGenerateFields property of the FieldLayoutSettings object of the XamDataGrid. Please let me know if you need further clarifications on this matter.
Looking forward fort your reply.
Hello Stefan,
My XAML-code looks like this:
<igDP:XamDataGrid
x:Name="IgGridProjects"
DataSource="{Binding Projects2}"
ActiveDataItem="{Binding CurrentProjListItem}"
SelectedItemsChanged="IgGridProjects_SelectedItemsChanged"
AssigningFieldLayoutToItem="IgGridProjects_AssigningFieldLayoutToItem"
GroupByAreaLocation="None">
<igDP:XamDataGrid.FieldLayouts>
<igDP:FieldLayout Key="masterRow">
<igDP:Field Name="ShortName" Label="Short Name" />
<igDP:Field Name="Name" Label="Name" />
<igDP:Field Name="Owner" Label="Owner" />
</igDP:FieldLayout>
<igDP:FieldLayout Key="nestedRow">
<igDP:Field Name="VersCreateDate" Label="Created On" />
<igDP:Field Name="VersUpdateDate" Label="Updated On" />
</igDP:XamDataGrid.FieldLayouts>
</igDP:XamDataGrid>
Where should I place the XAML you provided?
Hello again
The objects I'm displaying in the XamDataGrid have multiple public collections. How can I specify which collection should be used for "nested" items in a hierarchical XamDataGrid?
Hello again,
You can set the AutoGenerateFields property of the nested FieldLayout to False and define the Fields that you want to be displayed.
Isn't that the same as my previous question?
What I want to do here, is to specify the collection from which the nested items should be taken.
For example I have a vmProject ViewModel-class, that I use in my XamDataGrid. This class has two public collections, "Versions" and "Notes". In the XamDataGrid I only want to display objects from "Versions" as child-elements of vmProject. As of now the Grid displays both collections!
I still want the AutoGenerateFields set to false so that I can specify the columns myself.
I apologize for the misunderstanding. I created a sample project for you with the functionality you want. My custom class has two collections, too and I define the FiledLayout, so that only one of them is shown. When you have hierarchical data you should define a Field with the name of the collection or if you have DataSet, with the relationship, when the AutoGenereateFields property is set to False.
Looking forward for your reply.
Stefan,
I have a similar situation and your example helped to a certain extent. However, it fails in a certain scenario. I have modified your solution to reproduce my situation. I have added another class to the Person object and I need to display the "Height" field at the parent row level.
Attached is the modified code. It'll be great if you can help on this. Also, I added a "Number" property to the Cars class. Though the field is displayed correctly, I failed to understand how? Does XamDataGrid compare the rest of the fields to see what collection the FieldLayout belongs to ?
Thanks for your help.
Thank you Yanko Nikolov. That worked.
Hello,
I have already answered this question in the following forum thread :
http://es.infragistics.com/community/forums/p/72414/366844.aspx#366844