wpf-17639-controls-and-libraries-pivot-grid-examples-miscellaneous-how-to-save-and-restore-layout-to-from-a-stream.md
The following example shows how to save a PivotGridControl layout to a stream using the PivotGridControl.SaveLayoutToStream method and then, how to restore the layout from the stream using the PivotGridControl.RestoreLayoutFromStream method.
<Window xmlns:dxpg="http://schemas.devexpress.com/winfx/2008/xaml/pivotgrid"
x:Class="HowToSaveAndRestoreLayoutFromStream.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="380" Width="525"
xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
xmlns:my="clr-namespace:HowToSaveAndRestoreLayoutFromStream.nwindDataSetTableAdapters"
xmlns:my1="clr-namespace:HowToSaveAndRestoreLayoutFromStream">
<Window.Resources>
<dx:TypedSimpleSource x:Key="TypedSimpleSource"
AdapterType="my:SalesPersonTableAdapter"
ContextType="my1:nwindDataSet" Path="SalesPerson">
<dx:DesignDataManager.DesignData>
<dx:DesignDataSettings RowCount="5" />
</dx:DesignDataManager.DesignData>
</dx:TypedSimpleSource>
</Window.Resources>
<Grid>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<dxpg:PivotGridControl HorizontalAlignment="Left" Name="pivotGridControl1"
VerticalAlignment="Top"
DataSource="{Binding Path=Data, Source={StaticResource TypedSimpleSource}}">
<dxpg:PivotGridControl.Fields>
<dxpg:PivotGridField Name="fieldCategory" FieldName="CategoryName"
Caption="Category" Area="RowArea" />
<dxpg:PivotGridField Name="fieldYear" FieldName="OrderDate" Area="ColumnArea"
Caption="Year" GroupInterval="DateYear" />
<dxpg:PivotGridField Name="fieldExtendedPrice" FieldName="Extended Price"
Area="DataArea" CellFormat="c0"/>
</dxpg:PivotGridControl.Fields>
</dxpg:PivotGridControl>
<StackPanel Grid.Row="1" Orientation="Horizontal">
<Button Name="buttonSave" Content="Save" Padding="8, 4, 8, 4"
Margin="4" Click="buttonSave_Click" ></Button>
<Button Name="buttonLoad" Content="Load" Padding="8, 4, 8, 4"
Margin="4" Click="buttonLoad_Click"></Button>
</StackPanel>
</Grid>
</Window>
Imports System.Windows
Namespace HowToSaveAndRestoreLayoutFromStream
Partial Public Class MainWindow
Inherits Window
' Create a MemoryStream instance.
Private LayoutStream As System.IO.Stream = New System.IO.MemoryStream()
Public Sub New()
InitializeComponent()
End Sub
Private Sub buttonSave_Click(ByVal sender As Object, ByVal e As RoutedEventArgs)
' Save the layout to a stream.
pivotGridControl1.SaveLayoutToStream(LayoutStream)
End Sub
Private Sub buttonLoad_Click(ByVal sender As Object, ByVal e As RoutedEventArgs)
LayoutStream.Position = 0
' Load the layout from the stream.
pivotGridControl1.RestoreLayoutFromStream(LayoutStream)
End Sub
End Class
End Namespace
using System.Windows;
namespace HowToSaveAndRestoreLayoutFromStream {
public partial class MainWindow : Window {
// Create a MemoryStream instance.
System.IO.Stream LayoutStream = new System.IO.MemoryStream();
public MainWindow() {
InitializeComponent();
}
private void buttonSave_Click(object sender, RoutedEventArgs e) {
// Save the layout to a stream.
pivotGridControl1.SaveLayoutToStream(LayoutStream);
}
private void buttonLoad_Click(object sender, RoutedEventArgs e) {
LayoutStream.Position = 0;
// Load the layout from the stream.
pivotGridControl1.RestoreLayoutFromStream(LayoutStream);
}
}
}