Mini Kabibi Habibi
<local:PrintViewGridDemoModule x:Class="GridDemo.PrintMasterDetail"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:global="clr-namespace:System.Globalization;assembly=mscorlib"
xmlns:dxdemo="clr-namespace:GridDemo"
xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
xmlns:dxgt="clr-namespace:DevExpress.Xpf.Grid.Themes;assembly=DevExpress.Xpf.Grid.v13.1"
xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
xmlns:local="clr-namespace:GridDemo"
xmlns:dxdb="http://schemas.devexpress.com/winfx/2008/xaml/demobase"
xmlns:dxp="http://schemas.devexpress.com/winfx/2008/xaml/printing"
xmlns:collections="clr-namespace:System.Collections;assembly=mscorlib"
xmlns:sys="clr-namespace:System;assembly=mscorlib"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d" d:DesignHeight="400" d:DesignWidth="800">
<local:PrintViewGridDemoModule.Resources>
<ResourceDictionary>
<local:PrintMasterDetailModuleViewModel x:Key="viewModel" />
<dx:DefaultBooleanToNullableBooleanConverter x:Key="DefaultBooleanToNullableBooleanConverter"/>
</ResourceDictionary>
</local:PrintViewGridDemoModule.Resources>
<dxdb:DemoModuleControl SupressGroupFramePaddingInOptions="False">
<dxdb:DemoModuleControl.OptionsContent>
<StackPanel>
<StackPanel DataContext="{StaticResource viewModel}">
<dxe:CheckEdit x:Name="AllowPrintDetailsCheckEdit" Margin="10,0,0,5" Content="Allow Print Details" IsChecked="{Binding Path=AllowPrintDetails, Mode=TwoWay, Converter={StaticResource DefaultBooleanToNullableBooleanConverter}}"/>
<dxe:CheckEdit x:Name="PrintAllDetailsCheckEdit" Margin="10,0,0,0" Content="Print All Details" IsChecked="{Binding Path=PrintAllDetails, Mode=TwoWay, Converter={StaticResource DefaultBooleanToNullableBooleanConverter}}"/>
<dx:GroupFrame Header="Employees Print Options" Margin="0,10,0,0" VerticalAlignment="Top" DataContext="{StaticResource viewModel}">
<StackPanel>
<dxe:CheckEdit IsChecked="{Binding PrintEmployeesColumnHeaders, Mode=TwoWay}" Margin="0,0,0,5">Print Column Headers</dxe:CheckEdit>
<dxe:CheckEdit IsChecked="{Binding PrintEmployeesSummaries, Mode=TwoWay}">Print Total Summary</dxe:CheckEdit>
</StackPanel>
</dx:GroupFrame>
<dx:GroupFrame Header="Orders Detail Print Options" Margin="0,10,0,0" VerticalAlignment="Top" DataContext="{StaticResource viewModel}">
<StackPanel>
<dxe:CheckEdit IsChecked="{Binding PrintOrdersColumnHeaders, Mode=TwoWay}" Margin="0,0,0,5">Print Column Headers</dxe:CheckEdit>
<dxe:CheckEdit IsChecked="{Binding PrintOrdersSummaries, Mode=TwoWay}">Print Total Summary</dxe:CheckEdit>
</StackPanel>
</dx:GroupFrame>
<dx:GroupFrame Header="Invoices Detail Print Options" Margin="0,10,0,0" VerticalAlignment="Top" DataContext="{StaticResource viewModel}">
<StackPanel>
<dxe:CheckEdit IsChecked="{Binding PrintInvoicesColumnHeaders, Mode=TwoWay}" Margin="0,0,0,5">Print Column Headers</dxe:CheckEdit>
<dxe:CheckEdit IsChecked="{Binding PrintInvoicesSummaries, Mode=TwoWay}">Print Total Summary</dxe:CheckEdit>
</StackPanel>
</dx:GroupFrame>
<dx:GroupFrame Header="Customers Detail Print Options" Margin="0,10,0,0" VerticalAlignment="Top" DataContext="{StaticResource viewModel}">
<StackPanel>
<dxe:CheckEdit IsChecked="{Binding PrintCustomersColumnHeaders, Mode=TwoWay}" Margin="0,0,0,5">Print Column Headers</dxe:CheckEdit>
<dxe:CheckEdit IsChecked="{Binding PrintCustomersSummaries, Mode=TwoWay}">Print Total Summary</dxe:CheckEdit>
</StackPanel>
</dx:GroupFrame>
<Button Name="newTabButton" Click="newTabButton_Click" Margin="0,12,0,0" Content="Preview"/>
<Button Name="newWindowButton" Click="newWindowButton_Click" Margin="0,12,0,0" Content="Preview in New Window"/>
</StackPanel>
</StackPanel>
</dxdb:DemoModuleControl.OptionsContent>
<dx:DXTabControl Name="tabControl" Margin="-1,2,-1,-1" Padding="1" TabHidden="tabControl_TabHidden">
<dx:DXTabItem Padding="12,4,12,4">
<dx:DXTabItem.Header>
<TextBlock FontWeight="Bold" Text="MasterDetail"/>
</dx:DXTabItem.Header>
<dxg:GridControl x:Name="grid" ItemsSource="{Binding Employees}" DataContext="{StaticResource viewModel}">
<dxg:GridControl.DetailDescriptor>
<dxg:TabViewDetailDescriptor>
<dxg:TabViewDetailDescriptor.DetailDescriptors>
<dxg:DataControlDetailDescriptor x:Name="MDOrdersDescriptor" ItemsSourceBinding="{Binding MDOrders}" ShowHeader="false">
<dxg:GridControl>
<dxg:GridControl.DetailDescriptor>
<dxg:DataControlDetailDescriptor x:Name="MDInvoicesDescriptor" ShowHeader="False" ItemsSourceBinding="{Binding Invoices}">
<dxg:GridControl>
<dxg:GridControl.Columns>
<dxg:GridColumn FieldName="ProductName" />
<dxg:GridColumn FieldName="UnitPrice" />
<dxg:GridColumn FieldName="Quantity" />
<dxg:GridColumn FieldName="Total" UnboundType="Decimal"
UnboundExpression="[UnitPrice]*[Quantity]" Header="Total" />
</dxg:GridControl.Columns>
<dxg:GridControl.View>
<dxg:TableView VerticalScrollbarVisibility="Auto" AutoWidth="True" NavigationStyle="Row"
ShowFixedTotalSummary="True" DetailHeaderContent="Invoices" ShowGroupPanel="False"
PrintFixedTotalSummary="{Binding PrintInvoicesSummaries, Source={StaticResource viewModel}}"
PrintColumnHeaders="{Binding PrintInvoicesColumnHeaders, Source={StaticResource viewModel}}" />
</dxg:GridControl.View>
<dxg:GridControl.TotalSummary>
<dxg:GridSummaryItem SummaryType="Count" Alignment="Left"/>
<dxg:GridSummaryItem FieldName="Total" SummaryType="Sum" Alignment="Right" />
</dxg:GridControl.TotalSummary>
</dxg:GridControl>
</dxg:DataControlDetailDescriptor>
</dxg:GridControl.DetailDescriptor>
<dxg:GridControl.Columns>
<dxg:GridColumn FieldName="OrderDate" />
<dxg:GridColumn FieldName="Freight" />
<dxg:GridColumn FieldName="ShipName" />
<dxg:GridColumn FieldName="ShipCountry"/>
<dxg:GridColumn FieldName="ShipCity" />
<dxg:GridColumn FieldName="ShipAddress" />
</dxg:GridControl.Columns>
<dxg:GridControl.View>
<dxg:TableView VerticalScrollbarVisibility="Auto" AutoWidth="True" NavigationStyle="Row"
DetailHeaderContent="Orders" ShowGroupPanel="False"
ShowFixedTotalSummary="True"
PrintFixedTotalSummary="{Binding PrintOrdersSummaries}"
PrintColumnHeaders="{Binding PrintOrdersColumnHeaders}"/>
</dxg:GridControl.View>
<dxg:GridControl.TotalSummary>
<dxg:GridSummaryItem FieldName="Freight" SummaryType="Sum" Alignment="Right" />
</dxg:GridControl.TotalSummary>
</dxg:GridControl>
</dxg:DataControlDetailDescriptor>
<dxg:DataControlDetailDescriptor Name="MDCustomersDescriptor" ItemsSourceBinding="{Binding MDCustomers}" ShowHeader="false">
<dxg:GridControl>
<dxg:GridControl.Columns>
<dxg:GridColumn FieldName="ContactName" />
<dxg:GridColumn FieldName="Country" />
<dxg:GridColumn FieldName="City" />
<dxg:GridColumn FieldName="Address" />
<dxg:GridColumn FieldName="Phone" />
</dxg:GridControl.Columns>
<dxg:GridControl.View>
<dxg:TableView VerticalScrollbarVisibility="Auto" AutoWidth="True" NavigationStyle="Row"
DetailHeaderContent="Customers" ShowGroupPanel="False" ShowFixedTotalSummary="True"
PrintFixedTotalSummary="{Binding PrintCustomersSummaries}"
PrintColumnHeaders="{Binding PrintCustomersColumnHeaders}" />
</dxg:GridControl.View>
<dxg:GridControl.TotalSummary>
<dxg:GridSummaryItem SummaryType="Count" Alignment="Left" />
</dxg:GridControl.TotalSummary>
</dxg:GridControl>
</dxg:DataControlDetailDescriptor>
</dxg:TabViewDetailDescriptor.DetailDescriptors>
</dxg:TabViewDetailDescriptor>
</dxg:GridControl.DetailDescriptor>
<dxg:GridControl.View>
<dxg:TableView x:Name="view" AutoWidth="True" NavigationStyle="Row" DetailHeaderContent="Employees"
AllowPrintDetails="{Binding AllowPrintDetails}" AllowPrintEmptyDetails="False" ShowFixedTotalSummary="True"
PrintAllDetails="{Binding PrintAllDetails}"
PrintFixedTotalSummary="{Binding PrintEmployeesSummaries}"
PrintColumnHeaders="{Binding PrintEmployeesColumnHeaders}"
/>
</dxg:GridControl.View>
<dxg:GridControl.Columns>
<dxg:GridColumn FieldName="FullName" ReadOnly="True" MinWidth="60"/>
<dxg:GridColumn FieldName="Title" Header="JobTitle"/>
<dxg:GridColumn FieldName="Region" Header="Country" MinWidth="60"/>
<dxg:GridColumn FieldName="BirthDate" MinWidth="60">
<dxg:GridColumn.EditSettings>
<dxe:DateEditSettings DisplayFormat="d" />
</dxg:GridColumn.EditSettings>
</dxg:GridColumn>
<dxg:GridColumn FieldName="EMail" Header="Contacts" Width="195"/>
</dxg:GridControl.Columns>
<dxg:GridControl.TotalSummary>
<dxg:GridSummaryItem SummaryType="Count" Alignment="Right"/>
</dxg:GridControl.TotalSummary>
</dxg:GridControl>
</dx:DXTabItem>
</dx:DXTabControl>
</dxdb:DemoModuleControl>
</local:PrintViewGridDemoModule>