Hi,
I'm trying to save RadGridView columns order by using Persistance manager:
PersistenceManager manager = new PersistenceManager();
manager.AllowCrossVersion = true;
stream = manager.Save(radGridView);
And
Reading back:
PersistenceManager manager = new PersistenceManager();
stream.Position = 0L;
manager.Load(radGridView, stream);
I change order using drag and drop and then saving the radgridview.
Sometimes order is right, but many times order is something else that I save.
What is the problem? I sent your simple project that you can verified the problem.
Save button is saving grid on the stream.
Format button is return grid in original order.
Get button is loadin order in the stream.
Here is to prosess:
1. Start to program.
2. Change column order
3. Press Save button.
4. Load original order.
5. Press Get Button.
Some times order is correct and some times is not.
Here is the c# colde:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using Telerik.Windows.Controls;
using System.Collections.ObjectModel;
using Telerik.Windows.Controls.GridView;
using System.Data;
using System.Collections;
using Microsoft.Win32;
using Telerik.Windows.Documents.FormatProviders.Pdf;
using System.IO;
using System.Xml.Serialization;
using System.Globalization;
using Telerik.Windows.Persistence;
using Telerik.Windows.Zip;
using Telerik.Windows.Persistence.Services;
using Telerik.Windows.DragDrop;
using Telerik.Windows.DragDrop.Behaviors;
using System.IO.IsolatedStorage;
namespace GRID_TESTI
{
/// <summary>
/// Interaction logic for Page1.xaml
/// </summary>
public partial class Page1 : Page
{
AlarmDataCls ac = new AlarmDataCls();
public Page1()
{
InitializeComponent();
ServiceProvider.RegisterPersistenceProvider<ICustomPropertyProvider>(typeof(RadGridView), new GridViewCustomPropertyProvider());
LoadColumns();
}
private Stream stream = null;
public void LoadColumns()
{
AlarmDataCls ac = new AlarmDataCls();
IList data = new ObservableCollection<AlarmDataCls>();
radGridView.ItemsSource = null;
radGridView.ItemsSource = data;
}
private void btnSave_Click(object sender, RoutedEventArgs e)
{
radGridView.Rebind();
SaveToStream();
}
private void btnBring_Click(object sender, RoutedEventArgs e)
{
OpenFromStream();
}
private void SaveToStream()
{
try
{
PersistenceManager manager = new PersistenceManager();
manager.AllowCrossVersion = true;
stream = manager.Save(radGridView);
}
catch (Exception ex)
{
}
}
private void OpenFromStream()
{
try
{
PersistenceManager manager = new PersistenceManager();
stream.Position = 0L;
manager.Load(radGridView, stream);
}
catch (Exception ex)
{
}
}
private void btnAlusta_Click(object sender, RoutedEventArgs e)
{
LoadColumns();
}
public class AlarmDataCls
{
public AlarmDataCls()
{
}
public string Eka
{
get;
set;
}
public int Toka
{
get;
set;
}
public int Kolmas
{
get;
set;
}
public int Neljas
{
get;
set;
}
public int Viides
{
get;
set;
}
public int Kuudes
{
get;
set;
}
public int Seiska
{
get;
set;
}
public int Kasi
{
get;
set;
}
public int Ysi
{
get;
set;
}
public int Kymppi
{
get;
set;
}
public int Yksitoista
{
get;
set;
}
public int Kaksitoista
{
get;
set;
}
public int Kolmetoista
{
get;
set;
}
public int Neljatoista
{
get;
set;
}
}
}
}
And here is the Xaml:
<Page
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation" x:Class="GRID_TESTI.Page1"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="1300"
Title="Page1">
<Grid>
<telerik:RadGridView telerik:PersistenceManager.StorageId="radGridView"
AutoGenerateColumns="true"
Margin="0,40,0,0"
Name="radGridView"
AllowDrop="True"
GroupRenderMode="Flat" Height="500">
</telerik:RadGridView>
<Button x:Name="btnSave" Content="Save" HorizontalAlignment="Left" Height="30" Margin="78,10,0,0" VerticalAlignment="Top" Width="120" Click="btnSave_Click"/>
<Button x:Name="btnBring" Content="Get" HorizontalAlignment="Left" Height="30" Margin="220,10,0,0" VerticalAlignment="Top" Width="120" Click="btnBring_Click"/>
<Button x:Name="btnAlusta" Content="Format" HorizontalAlignment="Left" Height="25" Margin="555,10,0,0" VerticalAlignment="Top" Width="100" Click="btnAlusta_Click"/>
</Grid>
</Page>
Best Regards
Auvo K