I'm not sure if this is possible, but I'm trying to load some FieldLayoutSettings from a resource file.
Basically I've got a resource file for my FieldLayouts, and often for a given grid I'm using two layouts (for top level data and for child data). Both layouts use the same DataRecordCellAreaGridTemplate to define the column widths, so rather than repeating the code for both layouts:
<igDP:FieldLayout x:Key="IGFieldLayout_ActionTopLevelItem" x:Shared="False" Key="LocationTopLevelItem" > <igDP:FieldLayout.Settings> <igDP:FieldLayoutSettings LabelLocation="Default" > <igDP:FieldLayoutSettings.DataRecordCellAreaGridTemplate> <ItemsPanelTemplate> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="150"/> <ColumnDefinition Width="*"/> <ColumnDefinition Width="100"/> </Grid.ColumnDefinitions> </Grid> </ItemsPanelTemplate> </igDP:FieldLayoutSettings.DataRecordCellAreaGridTemplate> </igDP:FieldLayoutSettings> </igDP:FieldLayout.Settings>
....
I'm hoping that theres a way to define the DataRecordCellAreaGridTemplate, or the FieldLayoutSettings in the resource file so that it can be defined once and referenced by both FieldLayouts?
I've tried something like this:
<igDP:FieldLayoutSettings x:Key="IGFieldLayoutSettings_ActionItems" > <igDP:FieldLayoutSettings.DataRecordCellAreaGridTemplate> <ItemsPanelTemplate> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="150"/> <ColumnDefinition Width="*"/> <ColumnDefinition Width="100"/> </Grid.ColumnDefinitions> </Grid> </ItemsPanelTemplate> </igDP:FieldLayoutSettings.DataRecordCellAreaGridTemplate> </igDP:FieldLayoutSettings>
But couldn't then reference that StaticResource in my FieldLayouts. I also tried for a straight <igDP:DataRecordCellArea>... resource but couldn't use that either. Is there a way of achieving what I want or do I just have to define the template in each FieldLayout?
Many thanks in advance!
Thanks once again Alex, does the job perfectly :)
Cheers,
Rob
Hello,
DataRecordCellAreaGridTemplate is nothing more than a ItemsPanelTemplate. You can define ItemsPanelTemplate in the resources and by its key set it here <igDP:FieldLayoutSettings.DataRecordCellAreaGridTemplate>.
<...Resources>
<ItemsPanelTemplate x:Key="DataRecordCellAreaGridTemplate"> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="150"/> <ColumnDefinition Width="*"/> <ColumnDefinition Width="100"/> </Grid.ColumnDefinitions> </Grid> </ItemsPanelTemplate>
Alex.