PK
syí@›Ì‡X X App.xaml
PK
syí@o%âÂO O App.xaml.csusing System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Windows;
namespace HierarchicalGridViewSerialization
{
///
/// Interaction logic for App.xaml
///
public partial class App : Application
{
}
}
PK
syí@™HÚË Ë Division.csusing System;
using System.Collections.Generic;
namespace HierarchicalGridViewSerialization
{
public class Division : IGridRowSelectionWatchable
{
public int Id
{
get;
set;
}
public string Name
{
get;
set;
}
public List Teams
{
get;
set;
}
public int GetUniqueId()
{
return this.Name.GetHashCode() ^ this.Id.GetHashCode();
}
public string StorageId
{
get
{
return GetUniqueId().ToString();
}
}
}
}
PK
syí@[¥7s`
`
DivisionsService.csusing System;
using System.Collections.ObjectModel;
using System.Collections.Generic;
namespace HierarchicalGridViewSerialization
{
public class DivisionsService
{
public static ObservableCollection GetDivisions()
{
ObservableCollection divisions = new ObservableCollection();
Division dA = new Division();
dA.Name = "Division A";
dA.Id = 1;
dA.Teams = new List();
Team team1 = new Team();
team1.Id = 1;
team1.TeamName = "Team I";
team1.Place = 1;
team1.Players = new List();
for (int i = 0; i < 5; i++)
{
team1.Players.Add(new Player()
{
FirstName = String.Format("Team I Name{0}", i),
LastName = String.Format("Team I SurName{0}", i),
Id = i * 125,
PlayNumber = i
});
}
dA.Teams.Add(team1);
Team team2 = new Team();
team2.Id = 2;
team2.TeamName = "Team II";
team2.Place = 2;
team2.Players = new List();
for (int i = 0; i < 6; i++)
{
team2.Players.Add(new Player()
{
FirstName = String.Format("Team II Name{0}", i),
LastName = String.Format("Team II SurName{0}", i),
Id = i * 125,
PlayNumber = i
});
}
dA.Teams.Add(team2);
Team team3 = new Team();
team3.Id = 3;
team3.TeamName = "Team III";
team3.Place = 3;
dA.Teams.Add(team3);
divisions.Add(dA);
Division dB = new Division();
dB.Name = "Division B";
dB.Id = 2;
dB.Teams = new List();
Team teamRed = new Team();
teamRed.Id = 1;
teamRed.TeamName = "Team Red";
teamRed.Place = 1;
dB.Teams.Add(teamRed);
Team teamGreen = new Team();
teamGreen.Id = 2;
teamGreen.TeamName = "Team Green";
teamGreen.Place = 2;
dB.Teams.Add(teamGreen);
Team teamBlue = new Team();
teamBlue.Id = 3;
teamBlue.TeamName = "Team Blue";
teamBlue.Place = 3;
dB.Teams.Add(teamBlue);
divisions.Add(dB);
Division dC = new Division();
dC.Name = "Division C";
dC.Id = 3;
dC.Teams = new List();
Team teamAlpha = new Team();
teamAlpha.Id = 1;
teamAlpha.TeamName = "Team Alpha";
teamAlpha.Place = 1;
dC.Teams.Add(teamAlpha);
Team teamBeta = new Team();
teamBeta.Id = 2;
teamBeta.TeamName = "Team Beta";
teamBeta.Place = 2;
dC.Teams.Add(teamBeta);
Team teamGama = new Team();
teamGama.Id = 3;
teamGama.TeamName = "Team Gama";
teamGama.Place = 3;
dC.Teams.Add(teamGama);
divisions.Add(dC);
return divisions;
}
}
}
PK
syí@ûd‰„0 „0 ! GridViewCustomPropertyProvider.csusing System.Collections.Generic;
using System.Linq;
using Telerik.Windows.Controls;
using Telerik.Windows.Controls.GridView;
using Telerik.Windows.Persistence.Services;
namespace HierarchicalGridViewSerialization
{
public class GridViewCustomPropertyProvider : ICustomPropertyProvider
{
public CustomPropertyInfo[] GetCustomProperties()
{
// Create three custom properties to persist the Columns, Sorting and Group descriptors using proxy objects
return new CustomPropertyInfo[]
{
new CustomPropertyInfo("Columns", typeof(List)),
new CustomPropertyInfo("SortDescriptors", typeof(List)),
new CustomPropertyInfo("FilterDescriptors", typeof(List)),
new CustomPropertyInfo("GroupDescriptors", typeof(List)),
new CustomPropertyInfo("GridViewHelper.SelectedIds", typeof(List)),
};
}
public void InitializeObject(object context)
{
if (context is RadGridView)
{
RadGridView gridView = context as RadGridView;
gridView.SortDescriptors.Clear();
gridView.GroupDescriptors.Clear();
gridView.FilterDescriptors.Clear();
gridView.CollapseAllHierarchyItems();
}
}
public object InitializeValue(CustomPropertyInfo customPropertyInfo, object context)
{
return null;
}
public object ProvideValue(CustomPropertyInfo customPropertyInfo, object context)
{
RadGridView gridView = context as RadGridView;
if (customPropertyInfo.Name == "GridViewHelper.SelectedIds")
{
//create proxies for all expanded rows
List proxies = new List();
GridViewSelectionWatcher watcher = GridViewHelper.GetWatcher(gridView);
if (watcher != null)
{
foreach (int id in watcher.SelectedRowsIdCollection)
{
proxies.Add(new SelectedIdProxy() { SelectedId = id });
}
}
return proxies;
}
else if (customPropertyInfo.Name == "Columns")
{
// create proxies for all of the columns and save only specific properties
List proxies = new List();
foreach (GridViewColumn column in gridView.Columns)
{
proxies.Add(new ColumnProxy()
{
UniqueName = column.UniqueName,
Header = column.Header,
DisplayOrder = column.DisplayIndex,
Width = column.Width,
IsSelectColumn = column is GridViewSelectColumn
});
}
return proxies;
}
else if (customPropertyInfo.Name == "SortDescriptors")
{
// create proxies for all of the sort descriptors and save only specific properties
List proxies = new List();
foreach (ColumnSortDescriptor descriptor in gridView.SortDescriptors)
{
proxies.Add(new SortDescriptorProxy()
{
ColumnUniqueName = descriptor.Column.UniqueName,
SortDirection = descriptor.SortDirection,
});
}
return proxies;
}
else if (customPropertyInfo.Name == "GroupDescriptors")
{
// create proxies for all of the group descriptors and save only specific properties
List proxies = new List();
foreach (ColumnGroupDescriptor descriotor in gridView.GroupDescriptors)
{
proxies.Add(new GroupDescriptorProxy()
{
ColumnUniqueName = descriotor.Column.UniqueName,
SortDirection = descriotor.SortDirection,
});
}
return proxies;
}
else if (customPropertyInfo.Name == "FilterDescriptors")
{
List settings = new List();
foreach (GridViewDataColumn column in gridView.Columns
.OfType()
.Where(column => column.ColumnFilterDescriptor.IsActive))
{
FilterSetting setting = new FilterSetting();
setting.ColumnUniqueName = column.UniqueName;
if (column.ColumnFilterDescriptor.FieldFilter.Filter1.IsActive)
{
setting.Filter1 = new FilterDescriptorProxy();
setting.Filter1.Operator = column.ColumnFilterDescriptor.FieldFilter.Filter1.Operator;
setting.Filter1.Value = column.ColumnFilterDescriptor.FieldFilter.Filter1.Value;
setting.Filter1.IsCaseSensitive = column.ColumnFilterDescriptor.FieldFilter.Filter1.IsCaseSensitive;
}
if (column.ColumnFilterDescriptor.FieldFilter.Filter2.IsActive)
{
setting.Filter2 = new FilterDescriptorProxy();
setting.Filter2.Operator = column.ColumnFilterDescriptor.FieldFilter.Filter2.Operator;
setting.Filter2.Value = column.ColumnFilterDescriptor.FieldFilter.Filter2.Value;
setting.Filter2.IsCaseSensitive = column.ColumnFilterDescriptor.FieldFilter.Filter2.IsCaseSensitive;
}
foreach (object distinctValue in column.ColumnFilterDescriptor.DistinctFilter.DistinctValues)
{
setting.SelectedDistinctValues.Add(distinctValue);
}
settings.Add(setting);
}
return settings;
}
return null;
}
public void RestoreValue(CustomPropertyInfo customPropertyInfo, object context, object value)
{
RadGridView gridView = context as RadGridView;
if (customPropertyInfo.Name == "GridViewHelper.SelectedIds")
{
//restore the expanded rows
List savedProxies = value as List;
GridViewSelectionWatcher watcher = GridViewHelper.GetWatcher(gridView);
foreach (SelectedIdProxy eip in savedProxies)
{
watcher.SelectedRowsIdCollection.Add(eip.SelectedId);
}
}
else if (customPropertyInfo.Name == "Columns")
{
List savedProxies = value as List;
// restore properties on the saved columns:
foreach (ColumnProxy proxy in savedProxies)
{
if (proxy.IsSelectColumn)
{
GridViewSelectColumn selectColumn = this.GetColumnInstance(gridView, proxy.UniqueName) as GridViewSelectColumn;
if (selectColumn != null)
{
selectColumn.DisplayIndex = proxy.DisplayOrder;
(selectColumn.Header as System.Windows.Controls.CheckBox).IsChecked = (proxy.Header as System.Windows.Controls.CheckBox).IsChecked;
selectColumn.Width = proxy.Width;
}
}
else
{
GridViewColumn column = this.GetColumnInstance(gridView, proxy.UniqueName);
if (column != null)
{
column.DisplayIndex = proxy.DisplayOrder;
column.Header = proxy.Header;
column.Width = proxy.Width;
}
}
}
}
else if (customPropertyInfo.Name == "SortDescriptors")
{
gridView.SortDescriptors.Clear();
List savedProxies = value as List;
// restore properties on the saved sort descriptors:
foreach (SortDescriptorProxy proxy in savedProxies)
{
GridViewColumn column = this.GetColumnInstance(gridView, proxy.ColumnUniqueName);
gridView.SortDescriptors.Add(new ColumnSortDescriptor() { Column = column, SortDirection = proxy.SortDirection });
}
}
else if (customPropertyInfo.Name == "GroupDescriptors")
{
gridView.GroupDescriptors.Clear();
List savedProxies = value as List;
// restore properties on the saved group descriptors:
foreach (GroupDescriptorProxy proxy in savedProxies)
{
GridViewColumn column = this.GetColumnInstance(gridView, proxy.ColumnUniqueName);
gridView.GroupDescriptors.Add(new ColumnGroupDescriptor() { Column = column, SortDirection = proxy.SortDirection });
}
}
else if (customPropertyInfo.Name == "FilterDescriptors")
{
gridView.FilterDescriptors.SuspendNotifications();
foreach (var c in gridView.Columns)
{
if (c.ColumnFilterDescriptor.IsActive)
{
c.ClearFilters();
}
}
List settings = value as List;
foreach (FilterSetting setting in settings)
{
GridViewDataColumn column = gridView.Columns
.OfType()
.Single(c => c.UniqueName == setting.ColumnUniqueName);
if (column != null)
{
IColumnFilterDescriptor cfd = column.ColumnFilterDescriptor;
if (setting.Filter1 != null)
{
cfd.FieldFilter.Filter1.Operator = setting.Filter1.Operator;
cfd.FieldFilter.Filter1.Value = setting.Filter1.Value;
cfd.FieldFilter.Filter1.IsCaseSensitive = setting.Filter1.IsCaseSensitive;
}
if (setting.Filter2 != null)
{
cfd.FieldFilter.Filter2.Operator = setting.Filter2.Operator;
cfd.FieldFilter.Filter2.Value = setting.Filter2.Value;
cfd.FieldFilter.Filter2.IsCaseSensitive = setting.Filter2.IsCaseSensitive;
}
foreach (object distinctValue in setting.SelectedDistinctValues)
{
cfd.DistinctFilter.AddDistinctValue(distinctValue);
}
}
}
gridView.FilterDescriptors.ResumeNotifications();
}
}
private GridViewColumn GetColumnInstance(RadGridView gridView, string uniqueName)
{
foreach (GridViewColumn column in gridView.Columns)
{
if (column.UniqueName == uniqueName)
return column;
}
return null;
}
}
}
PK
syí@ä®QL L GridViewHelper.csusing System;
using System.Windows;
using System.Collections.Generic;
using Telerik.Windows.Controls.GridView;
using Telerik.Windows.Controls;
namespace HierarchicalGridViewSerialization
{
public class GridViewHelper : DependencyObject
{
public static bool GetIsExpandWatcherActive(DependencyObject obj)
{
return (bool)obj.GetValue(IsExpandWatcherActiveProperty);
}
public static void SetIsExpandWatcherActive(DependencyObject obj, bool value)
{
obj.SetValue(IsExpandWatcherActiveProperty, value);
}
public static readonly DependencyProperty IsExpandWatcherActiveProperty =
DependencyProperty.RegisterAttached("IsExpandWatcherActive", typeof(bool), typeof(GridViewHelper), new PropertyMetadata(false, OnIsExpandWatcherActivePropertyChanged));
private static void OnIsExpandWatcherActivePropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs args)
{
RadGridView gridView = d as RadGridView;
if (gridView != null)
{
if ((bool)args.NewValue)
{
GridViewHelper.SetWatcher(gridView, new GridViewSelectionWatcher(gridView));
}
else
{
GridViewHelper.SetWatcher(gridView, null);
}
}
}
public static GridViewSelectionWatcher GetWatcher(DependencyObject obj)
{
return (GridViewSelectionWatcher)obj.GetValue(WatcherProperty);
}
public static void SetWatcher(DependencyObject obj, GridViewSelectionWatcher value)
{
obj.SetValue(WatcherProperty, value);
}
public static readonly DependencyProperty WatcherProperty =
DependencyProperty.RegisterAttached("Watcher", typeof(GridViewSelectionWatcher), typeof(GridViewHelper), new PropertyMetadata(null, OnWatcherPropertyChanged));
private static void OnWatcherPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs args)
{
if (args.NewValue == null && args.OldValue != null)
{
GridViewSelectionWatcher watcher = args.OldValue as GridViewSelectionWatcher;
watcher.DetachEvents();
}
}
}
public class GridViewSelectionWatcher
{
private readonly RadGridView gridView;
public GridViewSelectionWatcher(RadGridView gridView)
{
this.gridView = gridView;
this.SelectedRowsIdCollection = new List();
this.AttachEvents();
}
public List SelectedRowsIdCollection { get; private set; }
private void AttachEvents()
{
this.gridView.RowLoaded += OnGridView_RowLoaded;
this.gridView.SelectionChanged += OnGridViewSelectionChanged;
}
void OnGridViewSelectionChanged(object sender, SelectionChangeEventArgs e)
{
foreach (var item in e.AddedItems)
{
if (item is IGridRowSelectionWatchable)
{
int uniqueId = (item as IGridRowSelectionWatchable).GetUniqueId();
if (!this.SelectedRowsIdCollection.Contains(uniqueId))
this.SelectedRowsIdCollection.Add(uniqueId);
}
}
foreach (var item in e.RemovedItems)
{
if (item is IGridRowSelectionWatchable)
{
int uniqueId = (item as IGridRowSelectionWatchable).GetUniqueId();
if (this.SelectedRowsIdCollection.Contains(uniqueId))
this.SelectedRowsIdCollection.Remove(uniqueId);
}
}
}
internal void DetachEvents()
{
this.gridView.RowLoaded -= OnGridView_RowLoaded;
this.gridView.SelectionChanged -= OnGridViewSelectionChanged;
}
private void OnGridView_RowLoaded(object sender, RowLoadedEventArgs e)
{
var watcher = GridViewHelper.GetWatcher(this.gridView);
if (e.DataElement != null && e.DataElement is IGridRowSelectionWatchable && watcher != null && watcher.SelectedRowsIdCollection.Count != 0)
{
int rowId = (e.DataElement as IGridRowSelectionWatchable).GetUniqueId();
foreach (int id in watcher.SelectedRowsIdCollection)
{
if (id == rowId)
{
(e.Row as GridViewRow).IsSelected = true;
}
}
}
}
}
public interface IGridRowSelectionWatchable
{
int GetUniqueId();
}
}
PK
}í@çæ
TÓ Ó ( HierarchicalGridViewSerialization.csproj
Debug
x86
8.0.30703
2.0
{8005E9A1-ED2D-4A6E-9181-9E4C37392C97}
WinExe
Properties
HierarchicalGridViewSerialization
HierarchicalGridViewSerialization
v4.0
Client
512
{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
4
x86
true
full
false
bin\Debug\
DEBUG;TRACE
prompt
4
x86
pdbonly
true
bin\Release\
TRACE
prompt
4
4.0
False
..\..\Binaries\2012_Q2\RadControls_for_WPF_2012_2_0607_Trial_hotfix\Binaries\WPF40\Telerik.Windows.Controls.dll
False
..\..\Binaries\2012_Q2\RadControls_for_WPF_2012_2_0607_Trial_hotfix\Binaries\WPF40\Telerik.Windows.Controls.GridView.dll
False
..\..\Binaries\2012_Q2\RadControls_for_WPF_2012_2_0607_Trial_hotfix\Binaries\WPF40\Telerik.Windows.Controls.Input.dll
False
..\..\Binaries\2012_Q2\RadControls_for_WPF_2012_2_0607_Trial_hotfix\Binaries\WPF40\Telerik.Windows.Controls.Navigation.dll
False
..\..\Binaries\2012_Q2\RadControls_for_WPF_2012_2_0607_Trial_hotfix\Binaries\WPF40\Telerik.Windows.Data.dll
False
..\..\Binaries\2012_Q2\RadControls_for_WPF_2012_2_0607_Trial_hotfix\Binaries\WPF40\Telerik.Windows.PersistenceFramework.dll
MSBuild:Compile
Designer
MSBuild:Compile
Designer
App.xaml
Code
MainWindow.xaml
Code
Code
True
True
Resources.resx
True
Settings.settings
True
ResXFileCodeGenerator
Resources.Designer.cs
SettingsSingleFileGenerator
Settings.Designer.cs
PK
syí@•ÛŒã ã - HierarchicalGridViewSerialization.csproj.user
ShowAllFiles
PK
æ|í@ÿF¼Dµ µ MainWindow.xaml
PK
syí@<:¬ë ë MainWindow.xaml.csusing System;
using System.Linq;
using System.Windows;
using Telerik.Windows.Persistence.Storage;
using Telerik.Windows.Persistence.Services;
using Telerik.Windows.Controls;
using Telerik.Windows.Persistence;
namespace HierarchicalGridViewSerialization
{
///
/// Interaction logic for MainWindow.xaml
///
public partial class MainWindow : Window
{
System.IO.Stream stream;
public MainWindow()
{
InitializeComponent();
this.xGridView.SetValue(GridViewHelper.IsExpandWatcherActiveProperty, true);
// register the custom property provider for the RadGridView:
ServiceProvider.RegisterPersistenceProvider(typeof(RadGridView), new GridViewCustomPropertyProvider());
this.xGridView.ItemsSource = DivisionsService.GetDivisions();
this.EnsureLoadState();
}
private void OnSave(object sender, System.Windows.RoutedEventArgs e)
{
PersistenceManager manager = new PersistenceManager();
this.stream = manager.Save(this.xGridView);
this.EnsureLoadState();
}
private void OnLoad(object sender, System.Windows.RoutedEventArgs e)
{
this.stream.Position = 0L;
PersistenceManager manager = new PersistenceManager();
manager.Load(this.xGridView, this.stream);
this.EnsureLoadState();
}
private bool CanLoad()
{
return this.stream != null && this.stream.Length > 0;
}
private void EnsureLoadState()
{
this.buttonLoad.IsEnabled = this.CanLoad();
}
}
}
PK
syí@Â|³dG G Player.csusing System;
using System.Linq;
namespace HierarchicalGridViewSerialization
{
public class Player : IGridRowSelectionWatchable
{
public int Id
{
get;
set;
}
public string FirstName
{
get;
set;
}
public string LastName
{
get;
set;
}
public int PlayNumber
{
get;
set;
}
public int GetUniqueId()
{
return this.FirstName.GetHashCode() ^ this.LastName.GetHashCode() ^ this.PlayNumber.GetHashCode();
}
public string StorageId
{
get
{
return GetUniqueId().ToString();
}
}
}
}
PK
syí@ Properties/PK
syí@l7‰È, , Properties/AssemblyInfo.csusing System.Reflection;
using System.Resources;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Windows;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("HierarchicalGridViewSerialization")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("Microsoft")]
[assembly: AssemblyProduct("HierarchicalGridViewSerialization")]
[assembly: AssemblyCopyright("Copyright © Microsoft 2012")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
//In order to begin building localizable applications, set
//CultureYouAreCodingWith in your .csproj file
//inside a . For example, if you are using US english
//in your source files, set the to en-US. Then uncomment
//the NeutralResourceLanguage attribute below. Update the "en-US" in
//the line below to match the UICulture setting in the project file.
//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]
[assembly: ThemeInfo(
ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located
//(used if a resource is not found in the page,
// or application resource dictionaries)
ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located
//(used if a resource is not found in the page,
// app, or any theme specific resource dictionaries)
)]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
PK
syí@¾|-N N Properties/Resources.Designer.cs//------------------------------------------------------------------------------
//
// This code was generated by a tool.
// Runtime Version:4.0.30319.239
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
//
//------------------------------------------------------------------------------
namespace HierarchicalGridViewSerialization.Properties
{
///
/// A strongly-typed resource class, for looking up localized strings, etc.
///
// This class was auto-generated by the StronglyTypedResourceBuilder
// class via a tool like ResGen or Visual Studio.
// To add or remove a member, edit your .ResX file then rerun ResGen
// with the /str option, or rebuild your VS project.
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class Resources
{
private static global::System.Resources.ResourceManager resourceMan;
private static global::System.Globalization.CultureInfo resourceCulture;
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
internal Resources()
{
}
///
/// Returns the cached ResourceManager instance used by this class.
///
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Resources.ResourceManager ResourceManager
{
get
{
if ((resourceMan == null))
{
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("HierarchicalGridViewSerialization.Properties.Resources", typeof(Resources).Assembly);
resourceMan = temp;
}
return resourceMan;
}
}
///
/// Overrides the current thread's CurrentUICulture property for all
/// resource lookups using this strongly typed resource class.
///
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Globalization.CultureInfo Culture
{
get
{
return resourceCulture;
}
set
{
resourceCulture = value;
}
}
}
}
PK
syí@”Ztvì ì Properties/Resources.resx
text/microsoft-resx
2.0
System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
PK
syí@)Ä,¬^ ^ Properties/Settings.Designer.cs//------------------------------------------------------------------------------
//
// This code was generated by a tool.
// Runtime Version:4.0.30319.239
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
//
//------------------------------------------------------------------------------
namespace HierarchicalGridViewSerialization.Properties
{
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "10.0.0.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
{
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
public static Settings Default
{
get
{
return defaultInstance;
}
}
}
}
PK
syí@Ú¥õ!É É Properties/Settings.settings
PK
syí@3Pöñ¿ ¿
Proxies.csusing Telerik.Windows.Controls;
using System.ComponentModel;
using Telerik.Windows.Data;
using System.Collections.Generic;
namespace HierarchicalGridViewSerialization
{
public class ColumnProxy
{
public string UniqueName { get; set; }
public int DisplayOrder { get; set; }
public object Header { get; set; }
public GridViewLength Width { get; set; }
public bool IsSelectColumn { get; set; }
}
public class SelectedIdProxy
{
public int SelectedId { get; set; }
}
public class SortDescriptorProxy
{
public string ColumnUniqueName { get; set; }
public ListSortDirection SortDirection { get; set; }
}
public class GroupDescriptorProxy
{
public string ColumnUniqueName { get; set; }
public ListSortDirection? SortDirection { get; set; }
}
public class FilterDescriptorProxy
{
public string Member { get; set; }
public FilterOperator Operator { get; set; }
public object Value { get; set; }
public bool IsCaseSensitive { get; set; }
}
public class FilterSetting
{
public string PropertyName { get; set; }
public string ColumnUniqueName { get; set; }
private List