С некоторой помощью службы поддержки DevExpress, я нашел эту статью , описывающую, как делать то, что я хотел.
Я поднял его на следующий уровень с методами расширения, описанными ниже, которые используютимя сетки для сохранения и восстановления ее макета.Я могу делать звонки, которые я хотел:
gridControl.SaveLayoutToIsolatedStorage();
gridControl.RestoreLayoutFromIsolatedStorage();
Вот код:
public static class GridSettingsExtension
{
private const string layoutFolderName = "dxGridLayout";
private static readonly Func<GridControl, string> gridLayoutFile = g => g.Name + ".xml";
public static bool IsLayoutSaved( this GridControl gridControl ) {
var file = IsolatedStorageFile.GetUserStoreForApplication();
var fullPath = Path.Combine( layoutFolderName, gridLayoutFile( gridControl ) );
return file.FileExists( fullPath );
}
public static void SaveLayoutToIsolatedStorage( this GridControl gridControl ) {
var file = IsolatedStorageFile.GetUserStoreForApplication();
if( !file.DirectoryExists( layoutFolderName ) ) {
file.CreateDirectory( layoutFolderName );
}
string fullPath = Path.Combine( layoutFolderName, gridLayoutFile( gridControl ) );
using( var fs = file.CreateFile( fullPath ) ) {
gridControl.SaveLayoutToStream( fs );
}
}
public static void RestoreLayoutFromIsolatedStorage( this GridControl gridControl ) {
var file = IsolatedStorageFile.GetUserStoreForApplication();
var fullPath = Path.Combine( layoutFolderName, gridLayoutFile( gridControl ) );
using( var fs = file.OpenFile( fullPath, FileMode.Open, FileAccess.Read ) ) {
gridControl.RestoreLayoutFromStream( fs );
}
}
}