wpf-devexpress-dot-xpf-dot-pivotgrid-dot-pivotgridcontrol-dot-savelayouttostream-x28-system-dot-io-dot-stream-x29.md
Saves the PivotGridControl’s layout to the specified stream.
Namespace : DevExpress.Xpf.PivotGrid
Assembly : DevExpress.Xpf.PivotGrid.v25.2.dll
NuGet Package : DevExpress.Wpf.PivotGrid
public void SaveLayoutToStream(
Stream stream
)
Public Sub SaveLayoutToStream(
stream As Stream
)
| Name | Type | Description |
|---|---|---|
| stream | Stream |
A Stream descendant to which the pivot grid’s layout is written.
|
To restore the grid layout previously saved by the SaveLayoutToStream method, use the PivotGridControl.RestoreLayoutFromStream or PivotGridControl.RestoreLayoutFromStreamAsync method.
Note that you should specify unique names for all pivot grid fields to correctly save and restore the layout. You can do this using the PivotGridField.Name property.
To learn more, see Save and Restore Layout.
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);
}
}
}
See Also
RestoreLayoutFromStream(Stream)