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
40
XamDatagrid WPF Nested Summary Display
posted

Good morning,

  I currently have many XamDataGrids and am having a problem with the display of the nested rows. I would like to remove the extra gray bars you can see in the example. The Summary row and the header are overflowing and I am not positive why.. I will attach the XAML, a screen shot, and whatever else you need. Please let me know what more information I can provide. I am currently working with the 13.2 version of your WPF controls.

Thank you,

  Scott Donald

<UserControl.Resources> 

<Style TargetType="{x:Type igdp:DataRecordCellArea}">
<Setter Property="Background" Value="{StaticResource WrapLightGrayBrush}" />
<Setter Property="BorderBrush" Value="{StaticResource WrapMediumGrayBrush}" />

<Setter Property="BackgroundActive" Value="{StaticResource WrapLightBlueBrush}" />
<Setter Property="BorderActiveBrush" Value="{StaticResource WrapMediumBlueBrush}" />

<Setter Property="BackgroundHover" Value="{StaticResource WrapMediumBlueBrush}" />
<Setter Property="BorderHoverBrush" Value="{StaticResource WrapDarkBlueBrush}" />

</Style>

<Style TargetType="{x:Type igdp:HeaderPrefixArea}" x:Key="HeaderPrefixStyle">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
     <wrapCommonControls:ToolbarMenu HorizontalAlignment="Center" Margin="0,0,14,0">
         <wrapCommonControls:ToolbarMenu.MenuContent>
             <StackPanel Orientation="Vertical" />

          </wrapCommonControls:ToolbarMenu.MenuContent>

     </wrapCommonControls:ToolbarMenu>

</Style>

</UserControl.Resources>

<igdp:XamDataGrid x:Name="trackerProductList" Grid.Row="0" HorizontalAlignment="Center" VerticalAlignment="Top" Visibility="{Binding Path=LoadOptionsVM.HasUserDoneLoad, Converter={StaticResource BooleanToVisibilityConverter}}" DataSource="{Binding Payments, ValidatesOnDataErrors=True, Mode=TwoWay, BindsDirectlyToSource=True}" ActiveDataItem="{Binding SelectedPayment, Mode=TwoWay}" FontSize="12" FontFamily="Segoe UI" ScrollingMode="Deferred" BorderBrush="{StaticResource WrapDarkBlueBrush}" GroupByAreaLocation="None">

<igdp:XamDataGrid.FieldSettings>
<igdp:FieldSettings SummaryDisplayArea="BottomFixed" LabelTextWrapping="NoWrap" Width="Auto" AutoSizeOptions="DataCells, Label" AllowEdit="False" AllowFixing="Near" AllowRecordFiltering="True" FilterLabelIconDropDownType="MultiSelectExcelStyle" Height="30" LabelMaxHeight="30" AllowSummaries="True" />
</igdp:XamDataGrid.FieldSettings>
<igdp:XamDataGrid.FieldLayouts>
<igdp:FieldLayout>
<igdp:FieldLayout.SortedFields>
<igdp:FieldSortDescription Direction="Ascending" FieldName="DealType" />
<igdp:FieldSortDescription Direction="Ascending" FieldName="ProductName" />
<igdp:FieldSortDescription Direction="Ascending" FieldName="TrackerNumber" />
</igdp:FieldLayout.SortedFields>
<igdp:FieldLayout.SummaryDefinitions>
<igdp:SummaryDefinition Key="AccruedUnits" SourceFieldName="AccruedUnits" Calculator="Sum" StringFormat="{} Total: {0:n0}" />
</igdp:FieldLayout.SummaryDefinitions>
<igdp:FieldLayout.Settings>
<igdp:FieldLayoutSettings HeaderPrefixAreaStyle="{StaticResource HeaderPrefixStyle}" FixedFieldUIType="Button" ExpansionIndicatorDisplayMode="CheckOnDisplay" RecordSelectorExtent="65" HeaderPrefixAreaDisplayMode="FieldChooserButton" AllowFieldMoving="WithinLogicalRow" AutoGenerateFields="False" FilterUIType="LabelIcons" HeaderPlacement="OnTopOnly" SupportDataErrorInfo="RecordsAndCells" AllowClipboardOperations="All" CopyFieldLabelsToClipboard="False" />
</igdp:FieldLayout.Settings>
<igdp:FieldLayout.Fields />
</igdp:FieldLayout>
<igdp:FieldLayout x:Name="NestedRow" >
<igdp:FieldLayout.FieldSettings>
<igdp:FieldSettings DataItemUpdateTrigger="OnCellValueChange" AllowRecordFiltering="True" AllowFixing="Near" AllowEdit="False" SummaryDisplayArea="BottomFixed" />
</igdp:FieldLayout.FieldSettings>
<igdp:FieldLayout.Settings>
<igdp:FieldLayoutSettings FixedFieldUIType="Button" ExpansionIndicatorDisplayMode="Never" RecordSelectorExtent="65" HeaderPrefixAreaDisplayMode="None" AllowFieldMoving="WithinLogicalRow" AutoGenerateFields="False" FilterUIType="LabelIcons" HeaderPlacement="OnTopOnly" SupportDataErrorInfo="RecordsAndCells" AllowClipboardOperations="All" CopyFieldLabelsToClipboard="False" />
</igdp:FieldLayout.Settings>
<igdp:FieldLayout.SortedFields>
<igdp:FieldSortDescription Direction="Ascending" FieldName="GeoName" />
</igdp:FieldLayout.SortedFields>
<igdp:FieldLayout.SummaryDefinitions>
<igdp:SummaryDefinition Key="TotalPayOutUnits" SourceFieldName="TotalPayOutUnits" Calculator="Sum" StringFormat="{} Total: {0:n0}" />
<igdp:SummaryDefinition Key="TotalPayOutDollars" SourceFieldName="TotalPayOutDollars" Calculator="Sum" StringFormat="{} Total: {0:C}" />
</igdp:FieldLayout.SummaryDefinitions>

Parents
  • 3520
    Offline posted

    Hello Scott,

    Thank you for your post.

    I have been looking into the sample XAML code you posted and the image visualization. The most straight forward approach for achieving the desired behavior is using the 'HeaderPrefixAreaDisplayMode' and 'RecordSelectorLocation' properties of the FieldLayoutSettings object and set them both to 'None'. I saw that you are defining your FieldLayouts in XAML so you can easily define those settings only on the layouts you need to remove the area from. However, I noticed that you actually need the HeaderPrefixArea in your top most field layout in order to put your ToolbarMenu, so this is probably the only layout you'd rather not specify these values.

    For your reference, I prepared a small sample application using the approach I described above which I believe implements the desired behavior.

    Please, let me know if I have misunderstood or misinterpreted your requirements.

    FieldLayoutStyling.zip
Reply Children
No Data