FlexGrid for WPF
レイアウトを復元する
基本操作 > グリッド > レイアウトを復元する

 C1FlexGrid の SaveColumnLayout/LoadColumnLayout メソッドを使用してSystem.Xml.XmlReader から列のレイアウトを保存/ロードできます。このプロパティを使用すると、列のレイアウト文字列は、列の位置、表示/非表示、および幅を定義します。しかし、スタイルなどが維持されませんのでご注意ください。SaveColumnLayout/LoadColumnLayout メソッドを実現する方法は以下に示します。

  

【実行例】

 

コードのコピー
Partial Public Class MainWindow
    Inherits Window

    Public Sub New()
        InitializeComponent()

        Dim p = Product.GetProducts(50)
        _flex.ItemsSource = p
        'グリッドのスタイルを設定します
        _flex.Rows.Frozen = 1
        _flex.Columns.Frozen = 1
        _flex.Background = Brushes.YellowGreen
        _flex.Rows(0).Foreground = Brushes.Red
        _flex.Rows(0).Background = Brushes.Yellow
    End Sub

    Private Sub Save_Click(sender As Object, e As RoutedEventArgs)
        Dim settings As New XmlWriterSettings()
        settings.Indent = True
        settings.IndentChars = vbTab
        Dim writer As XmlWriter = XmlWriter.Create("products.xml", settings)
        _flex.SaveColumnLayout(writer)
        writer.Close()
        MessageBox.Show("正常に保存しました!")
    End Sub

    Private Sub Load_Click(sender As Object, e As RoutedEventArgs)
        Dim reader As XmlReader = XmlReader.Create("products.xml")
        _flex.LoadColumnLayout(reader)
        reader.Close()
    End Sub

End Class
コードのコピー
public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();
        var p = Product.GetProducts(50);
        _flex.ItemsSource = p;
        _flex.Rows.Frozen = 1;
        _flex.Columns.Frozen = 1;
        _flex.Background = Brushes.YellowGreen;
        _flex.Rows[0].Foreground = Brushes.Red;
        _flex.Rows[0].Background = Brushes.Yellow;
    }

    private void Save_Click(object sender, RoutedEventArgs e)
    {
        XmlWriterSettings settings = new XmlWriterSettings();
        settings.Indent = true;
        settings.IndentChars = "\t";
        XmlWriter writer = XmlWriter.Create("producs.xml", settings);
        _flex.SaveColumnLayout(writer);
        writer.Close();
        MessageBox.Show("Save completed!");
    }

    private void Load_Click(object sender, RoutedEventArgs e)
    {
        XmlReader reader = XmlReader.Create("producs.xml");
        _flex.LoadColumnLayout(reader);
        reader.Close();
    }
}