Back to Devexpress

DataControlSerializationOptions.AddNewColumns Attached Property

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

latest4.8 KB
Original Source

DataControlSerializationOptions.AddNewColumns Attached Property

Gets or sets whether the columns that currently exist in the grid, but do not exist in a layout when it is restored, should be retained. 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 GetAddNewColumns(DependencyObject) and SetAddNewColumns(DependencyObject, Boolean).

Returns

TypeDescription
Boolean

true to retain the columns that currently exist in the grid, but do not exist in the layout being restored; false to destroy these columns.

|

Remarks

The AddNewColumns option affects how the grid’s layout is restored. If the AddNewColumns property is set to true , the columns that exist in the current layout but do not exist in the layout being restored, will be retained. Otherwise, these columns will be destroyed.

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

RemoveOldColumns

DataControlSerializationOptions Class

DataControlSerializationOptions Members

DevExpress.Xpf.Grid Namespace