Back to Devexpress

DataControlSerializationOptions.RemoveOldColumns Attached Property

wpf-devexpress-dot-xpf-dot-grid-dot-datacontrolserializationoptions-32200620.md

latest4.8 KB
Original Source

DataControlSerializationOptions.RemoveOldColumns Attached Property

Gets or sets whether the columns that exist in a layout when it is restored but do not currently exist in the grid, should be discarded. This is a dependency property.

Namespace : DevExpress.Xpf.Grid

Assembly : DevExpress.Xpf.Grid.v25.2.Core.dll

NuGet Package : DevExpress.Wpf.Grid.Core

Declaration

See GetRemoveOldColumns(DependencyObject) and SetRemoveOldColumns(DependencyObject, Boolean).

Returns

TypeDescription
Boolean

true to discard the columns that exist in the layout being restored but do not currently exist in the grid; false to add these columns to the grid.

|

Remarks

The RemoveOldColumns option affects how the grid’s layout is restored. If it is set to true , the columns that exist in the layout being loaded, but do not exist in the grid, will not be re-created. Otherwise, these columns will be added to the grid.

To learn more, see Saving and Restoring Layout.

Example

This example shows how to save the GridControl‘s layout to a memory stream. To do this, click the Save Layout button. Click the Restore Layout button to restore the saved layout.

View Example: Save Layout and Restore It from a Memory Stream

xaml
<dxg:GridControl x:Name="grid"
                 dx:DXSerializer.StoreLayoutMode="All" 
                 dxg:GridSerializationOptions.AddNewColumns="False" 
                 dxg:GridSerializationOptions.RemoveOldColumns="False"
                 UseFieldNameForSerialization="True">
    <dxg:GridColumn FieldName="IssueName"/>
    <dxg:GridColumn FieldName="IssueType"/>
    <dxg:GridColumn FieldName="IsPrivate" Header="Private"/>
    <dxg:GridControl.View>
        <dxg:TableView AutoWidth="True"/>
    </dxg:GridControl.View>
</dxg:GridControl>

<StackPanel Grid.Row="1" Orientation="Vertical">
    <StackPanel Orientation="Horizontal">
        <Button Margin="1" Content="Add a New Column" Click="OnAddNewColumn"/>
    </StackPanel>
    <StackPanel Orientation="Horizontal">
        <Button Content="Save Layout" Margin="1" Click="OnSaveLayout"/>
        <Button Content="Restore Layout" Margin="1" Click="OnRestoreLayout"/>
    </StackPanel>
</StackPanel>
cs
public partial class Window1 : Window {
    MemoryStream layoutStream;
    public Window1() {
        InitializeComponent();
        grid.ItemsSource = IssueList.GetData();
    }

    void OnSaveLayout(object sender, RoutedEventArgs e) {
        layoutStream = new MemoryStream();
        grid.SaveLayoutToStream(layoutStream);
    }
    void OnRestoreLayout(object sender, RoutedEventArgs e) {
        layoutStream.Position = 0;
        grid.RestoreLayoutFromStream(layoutStream);
    }
    void OnAddNewColumn(object sender, RoutedEventArgs e) {
        grid.Columns.Add(new DevExpress.Xpf.Grid.GridColumn() { FieldName = "IsPrivate" });
    }
}
vb
Public Partial Class Window1
    Inherits Window

    Private layoutStream As MemoryStream

    Public Sub New()
        Me.InitializeComponent()
        Me.grid.ItemsSource = IssueList.GetData()
    End Sub

    Private Sub OnSaveLayout(ByVal sender As Object, ByVal e As RoutedEventArgs)
        layoutStream = New MemoryStream()
        Me.grid.SaveLayoutToStream(layoutStream)
    End Sub

    Private Sub OnRestoreLayout(ByVal sender As Object, ByVal e As RoutedEventArgs)
        layoutStream.Position = 0
        Me.grid.RestoreLayoutFromStream(layoutStream)
    End Sub

    Private Sub OnAddNewColumn(ByVal sender As Object, ByVal e As RoutedEventArgs)
        Me.grid.Columns.Add(New DevExpress.Xpf.Grid.GridColumn() With {.FieldName = "IsPrivate"})
    End Sub
End Class

See Also

AddNewColumns

DataControlSerializationOptions Class

DataControlSerializationOptions Members

DevExpress.Xpf.Grid Namespace