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
295
Capture child field layout opening event
posted

I want to capture the open event when a user clicks on the "+" button for a child layout in a grid's field layout

I have a xamdatagrid with multiple layouts simulating a hierarchical layout. I want to implement lazy load on data that contribute to the child layout, since it will be an expensive operation to generate that data. Inorder to accomplish this I want to know when the user clicks on the "+" button to open the child layout. To start with i will bind some dummy data that says "Loading Please wait.." so that the "+" button appears initially. Once i receive the event when the user clicks on the "+" button i can then go ahead and construct the data set that will bind to the child layout.  

I am attaching my xaml and also an image of the view as it appears now with some overlay showing what i am trying to accomplish.

<igDP:XamDataGrid
Name="ApprovalsGrid"
Theme="Office2k7Black"
Background="Transparent"
InitializeRecord="ApprovalGrid_InitializeRecord"
Style="{DynamicResource PerformantGrid}"
DataSource="{Binding StagingChanges}">
<igDP:XamDataGrid.Resources>

<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary
Source="pack://application:,,,/GLM.Infrastructure.View;component/Themes/XamDataGrid.xaml" />
</ResourceDictionary.MergedDictionaries>

<Style x:Key="DetailsCellValuePresenter" TargetType="{x:Type igDP:CellValuePresenter}"
BasedOn="{x:Static Themes:DataPresenterGeneric.CellValuePresenter}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type igDP:CellValuePresenter}">
<Button Content="View Details"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Command="{Binding DataItem.ShowDetailsCommand}"
CommandParameter="{Binding DataItem}"/>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>

<Style x:Key="CheckBoxPresenter" TargetType="{x:Type igDP:CellValuePresenter}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type igDP:CellValuePresenter}">
<CheckBox
HorizontalAlignment="Center"
IsChecked="{Binding DataItem.IsSelected, Mode=TwoWay}"
VerticalAlignment="Center"/>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>

</ResourceDictionary>
</igDP:XamDataGrid.Resources>

<igDP:XamDataGrid.FieldLayoutSettings>
<igDP:FieldLayoutSettings
HeaderPrefixAreaDisplayMode="FieldChooserButton"
AllowAddNew="False"
SelectionTypeRecord="None"
AllowDelete="False"
AutoGenerateFields="False"
RecordSelectorLocation="None"
HighlightAlternateRecords="True"
ReevaluateFiltersOnDataChange="True"
SupportDataErrorInfo="RecordsAndCells"
DataErrorDisplayMode="ErrorIconAndHighlight"
DataRecordCellAreaStyle="{StaticResource HighlightedDataRecordCellAreaStyle}"
ExpansionIndicatorDisplayMode="CheckOnDisplay"
HeaderPlacement="OnTopOnly"
HeaderPlacementInGroupBy="OnTopOnly"
CopyFieldLabelsToClipboard="True"
AllowClipboardOperations="All">
</igDP:FieldLayoutSettings>
</igDP:XamDataGrid.FieldLayoutSettings>

<igDP:XamDataGrid.FieldSettings>
<igDP:FieldSettings
ExpandableFieldRecordExpansionMode="ExpandAlways"
ExpandableFieldRecordHeaderDisplayMode="NeverDisplayHeader"
LabelTextWrapping="NoWrap"
AllowEdit="False"
AllowRecordFiltering="False"
LabelClickAction="SortByMultipleFields"
CellValuePresenterStyle="{StaticResource CellValuePresenterStyle}"/>
</igDP:XamDataGrid.FieldSettings>

<igDP:XamDataGrid.FieldLayouts>

<igDP:FieldLayout IsDefault="True">

<igDP:FieldLayout.SortedFields>
<igDP:FieldSortDescription FieldName="LocalRequestTime" Direction="Ascending" />
</igDP:FieldLayout.SortedFields>

<igDP:FieldLayout.Fields>

<igDP:UnboundField
Name="SelectBox"
Label="">
<igDP:UnboundField.Settings>
<igDP:FieldSettings
CellMaxWidth="40"
LabelMaxWidth="40"
CellValuePresenterStyle="{StaticResource CheckBoxPresenter}"/>
</igDP:UnboundField.Settings>
</igDP:UnboundField>

<igDP:Field
Name="ChangeId"
Label="Change Id"
Visibility="Collapsed">
<igDP:Field.Settings>
<igDP:FieldSettings
CellWidth="61"
LabelWidth="61">
</igDP:FieldSettings>
</igDP:Field.Settings>
</igDP:Field>

<igDP:Field
Name="Requester"
Label="Requester">
<igDP:Field.Settings>
<igDP:FieldSettings
CellWidth="80"
LabelWidth="80"/>
</igDP:Field.Settings>
</igDP:Field>

<igDP:Field
Name="LocalRequestTime"
Label="Request Time">
<igDP:Field.Settings>
<igDP:FieldSettings
CellWidth="130"
LabelWidth="130"
AllowEdit="False">
<igDP:FieldSettings.EditorStyle>
<Style TargetType="{x:Type Editors:XamTextEditor}">
<Setter Property="Format" Value="yyyy-MM-dd HH:mm:ss" />
</Style>
</igDP:FieldSettings.EditorStyle>
</igDP:FieldSettings>
</igDP:Field.Settings>
</igDP:Field>


<igDP:Field
Name="Region"
Label="Region(s)">
<igDP:Field.Settings>
<igDP:FieldSettings
CellWidth="80"
LabelWidth="80">
</igDP:FieldSettings>
</igDP:Field.Settings>
</igDP:Field>

<igDP:Field
Name="ClientSummary"
Label="Client Summary">
<igDP:Field.Settings>
<igDP:FieldSettings
CellWidth="220"
LabelWidth="220">
</igDP:FieldSettings>
</igDP:Field.Settings>
</igDP:Field>

<igDP:Field
Name="Comment"
Label="Comment">
<igDP:Field.Settings>
<igDP:FieldSettings
CellWidth="240"
LabelWidth="240">
</igDP:FieldSettings>
</igDP:Field.Settings>
</igDP:Field>

<igDP:UnboundField
Name="Details"
Label="Details">
<igDP:Field.Settings>
<igDP:FieldSettings
CellWidth="70"
LabelWidth="70"
CellValuePresenterStyle="{StaticResource DetailsCellValuePresenter}">
</igDP:FieldSettings>
</igDP:Field.Settings>
</igDP:UnboundField>

<igDP:Field Name="ImpactedLimits" />

</igDP:FieldLayout.Fields>
</igDP:FieldLayout>

<igDP:FieldLayout ParentFieldName="ImpactedLimits">

<igDP:FieldLayout.FieldSettings>
<igDP:FieldSettings AllowRecordFiltering="False"/>
</igDP:FieldLayout.FieldSettings>

<igDP:FieldLayout.Settings>
<igDP:FieldLayoutSettings>
<igDP:FieldLayoutSettings.DataRecordPresenterStyle>
<Style TargetType="{x:Type igDP:DataRecordPresenter}"
BasedOn="{x:Null}">
<Setter Property="Margin" Value="20,0,0,0"/>
</Style>
</igDP:FieldLayoutSettings.DataRecordPresenterStyle>
</igDP:FieldLayoutSettings>
</igDP:FieldLayout.Settings>

<igDP:FieldLayout.SortedFields>
<igDP:FieldSortDescription FieldName="Schema" Direction="Ascending" />
</igDP:FieldLayout.SortedFields>

<igDP:FieldLayout.Fields>

<igDP:Field
Name="Schema"
Label="Schema">
<igDP:Field.Settings>
<igDP:FieldSettings
CellWidth="200"
LabelWidth="200"/>
</igDP:Field.Settings>
</igDP:Field>

<igDP:Field
Name="LimitId"
Label="Limit">
<igDP:Field.Settings>
<igDP:FieldSettings
CellWidth="90"
LabelWidth="90"/>
</igDP:Field.Settings>
</igDP:Field>

<igDP:Field
Name="Region"
Label="Region">
<igDP:Field.Settings>
<igDP:FieldSettings
CellWidth="200"
LabelWidth="200"/>
</igDP:Field.Settings>
</igDP:Field>

<igDP:Field Name="Clients" />

</igDP:FieldLayout.Fields>
</igDP:FieldLayout>

<igDP:FieldLayout ParentFieldName="Clients">

<igDP:FieldLayout.FieldSettings>
<igDP:FieldSettings AllowRecordFiltering="False"/>
</igDP:FieldLayout.FieldSettings>

<igDP:FieldLayout.Settings>
<igDP:FieldLayoutSettings>
<igDP:FieldLayoutSettings.DataRecordPresenterStyle>
<Style TargetType="{x:Type igDP:DataRecordPresenter}"
BasedOn="{x:Null}">
<Setter Property="Margin" Value="20,0,0,0"/>
</Style>
</igDP:FieldLayoutSettings.DataRecordPresenterStyle>
</igDP:FieldLayoutSettings>
</igDP:FieldLayout.Settings>

<igDP:FieldLayout.SortedFields>
<igDP:FieldSortDescription FieldName="Name" Direction="Ascending" />
</igDP:FieldLayout.SortedFields>

<igDP:FieldLayout.Fields>

<igDP:Field
Name="Name"
Label="Client">
<igDP:Field.Settings>
<igDP:FieldSettings
CellWidth="240"
LabelWidth="240"/>
</igDP:Field.Settings>
</igDP:Field>

<igDP:Field
Name="TNL"
Label="TNL">
<igDP:Field.Settings>
<igDP:FieldSettings
CellWidth="90"
LabelWidth="90"/>
</igDP:Field.Settings>
</igDP:Field>

</igDP:FieldLayout.Fields>
</igDP:FieldLayout>

</igDP:XamDataGrid.FieldLayouts>

</igDP:XamDataGrid>

Thanks in advance

Shahin

Parents Reply Children
No Data