Hi!
This maybe a misunderstanding by a newbie, but I thought with setting AutoGenerateFields="False" only fields would show up I explicity defined. However in the example below I also get a column "email".
Am I missing the point here?
<igDP:XamDataGrid x:Name="XamDataGrid1" BindToSampleData="true" > <igDP:XamDataGrid.FieldLayoutSettings> <igDP:FieldLayoutSettings AutoGenerateFields="False" /> </igDP:XamDataGrid.FieldLayoutSettings> <igDP:XamDataGrid.FieldLayouts> <igDP:FieldLayout> <igDP:FieldLayout.Fields> <igDP:Field Name="name" Label="f1" /> <igDP:Field Name="department" Label="f2" /> <igDP:Field Name="salary" Label="f3" /> </igDP:FieldLayout.Fields> </igDP:FieldLayout> </igDP:XamDataGrid.FieldLayouts> </igDP:XamDataGrid>
Actually we special case it when BindToSampleData is set to True to always auto generate fields. The reason for this is because this property was intended for use mainly at design time to allow you to see what the grid would look like with some random data in it. If you were working on a app where the AutoGenerateFields was set to false then you wouldn't see anything and BindToSampleData would be useless.
I too am having this problem:
<igDP:XamDataGrid DataSource="{Binding AvailableProjects}" AutoFit="True" Name="XamDataGrid1" GroupByAreaLocation="None">
<igDP:XamDataGrid.Resources>
<!-- This Style puts a CheckBox into the record selectors. -->
<Style TargetType="{x:Type igDP:RecordSelector}" BasedOn="{x:Null}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type igDP:RecordSelector}">
HorizontalAlignment="Center"
VerticalAlignment="Center"
IsChecked="{Binding Path=DataItem.IsChecked, Mode=TwoWay}"
/>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<!-- This Style puts a CheckBox into the header area above the record selectors. -->
<Style TargetType="{x:Type igDP:HeaderPrefixArea}" BasedOn="{x:Null}">
<Setter Property="Visibility" Value="Visible" />
<ControlTemplate TargetType="{x:Type igDP:HeaderPrefixArea}">
<CheckBox
IsChecked="{Binding Path=DataPresenter.DataContext.AllMembersAreChecked, Mode=TwoWay}"
</igDP:XamDataGrid.Resources>
<igDP:XamDataGrid.FieldSettings>
<igDP:FieldSettings AllowEdit="False" GroupByMode="Default"/>
</igDP:XamDataGrid.FieldSettings>
<igDP:XamDataGrid.FieldLayouts>
<igDP:FieldLayout>
<igDP:FieldLayout.Settings>
<igDP:FieldLayoutSettings AutoArrangeCells="Never" AutoGenerateFields="False" />
</igDP:FieldLayout.Settings>
<igDP:FieldLayout.Fields>
<igDP:Field Name="Name" Label="Server Name" />
<igDP:Field Name="IsChecked" Visibility="Collapsed" />
</igDP:FieldLayout.Fields>
<igDP:FieldLayout.SortedFields>
<igDP:FieldSortDescription FieldName="Name" />
</igDP:FieldLayout.SortedFields>
</igDP:FieldLayout>
</igDP:XamDataGrid.FieldLayouts>
</igDP:XamDataGrid>
Even though I have the AutoGenerate set to false, I see all the fields from my data, even down to Hierarchical items...
Ah, thanks for the clarification.
I tried to reproduce a problem and stripped down my scenario as much as possible, so I used BindToSampleData. AutoGenerateFields work as expected with my real data.