listvisualizer2005.zip
ListVisualizer2005_install
DictionaryVisualizer.dll
ListVisualizer.dll
VisualizerLib.dll
listvisualizer2008.zip
ListVisualizer2008_install
DictionaryVisualizer2008.dll
ListVisualizer2008.dll
VisualizerLib.dll
ListVisualizer2010.zip
ListVisualizer2010_install
DictionaryVisualizer2010.dll
ListVisualizer2010.dll
VisualizerLib.dll
ListVisualizer2010_src_03062010.zip
ListVisualizer2010_src
DictionaryVisualizer2010
bin
Release
DictionaryVisualizer2008.dll
VisualizerLib.dll
DictionaryVisualizer2008.csproj.vspscc
DictionaryVisualizer2010.csproj.user
mssccprj.scc
Properties
vssver.scc
vssver.scc
ListVisualizer2010.suo
ListVisualizer2010
bin
Release
ListVisualizer2008.dll
VisualizerLib.dll
ListVisualizer2008.csproj.vspscc
ListVisualizer2010.csproj.user
mssccprj.scc
Properties
vssver.scc
vssver.scc
ListVisualizerTest
bin
Release
ListVisualizerTest.exe
ListVisualizerTest.vshost.exe
ListVisualizerTest.vshost.exe.manifest
VisualizerLib.dll
Business
vssver.scc
Install
vssver.scc
ListVisualizerTest.csproj.user
ListVisualizerTest.csproj.vspscc
mssccprj.scc
Properties
Settings.settings
vssver.scc
vssver.scc
VisualizerLib
bin
Release
VisualizerLib.dll
mssccprj.scc
Properties
vssver.scc
VisualizerLib.csproj.user
VisualizerLib.csproj.vspscc
vssver.scc
ListVisualizer2010_src_26082011.zip
DictionaryVisualizer2008.csproj.vspscc
DictionaryVisualizer2010.csproj.user
mssccprj.scc
vssver.scc
vssver.scc
ListVisualizer2010.suo
ListVisualizer2008.csproj.vspscc
ListVisualizer2010.csproj.user
mssccprj.scc
vssver.scc
vssver.scc
vssver.scc
vssver.scc
ListVisualizerTest.csproj.user
ListVisualizerTest.csproj.vspscc
mssccprj.scc
Settings.settings
vssver.scc
vssver.scc
mssccprj.scc
vssver.scc
VisualizerLib.csproj.user
VisualizerLib.csproj.vspscc
vssver.scc
listvisualizer_src_15042008.zip
ListVisualizer
DictionaryVisualizer
bin
Release
DictionaryVisualizer.dll
VisualizerLib.dll
DictionaryVisualizer.csproj.user
DictionaryVisualizer.csproj.vspscc
mssccprj.scc
Properties
vssver.scc
vssver.scc
DictionaryVisualizer2008
bin
Release
DictionaryVisualizer2008.dll
VisualizerLib.dll
DictionaryVisualizer2008.csproj.vspscc
mssccprj.scc
Properties
vssver.scc
vssver.scc
ListVisualizer.vssscc
ListVisualizer
bin
Release
ListVisualizer.dll
VisualizerLib.dll
ListVisualizer.csproj.user
ListVisualizer.csproj.vspscc
mssccprj.scc
Properties
vssver.scc
vssver.scc
ListVisualizer2008.vssscc
ListVisualizer2008
bin
Release
ListVisualizer2008.dll
VisualizerLib.dll
ListVisualizer2008.csproj.vspscc
mssccprj.scc
Properties
vssver.scc
vssver.scc
ListVisualizerTest
bin
Release
ListVisualizerTest.exe
ListVisualizerTest.vshost.exe
ListVisualizerTest.vshost.exe.manifest
VisualizerLib.dll
Business
vssver.scc
Install
vssver.scc
ListVisualizerTest.csproj.vspscc
mssccprj.scc
Properties
Settings.settings
vssver.scc
vssver.scc
mssccprj.scc
VisualizerLib
bin
Release
VisualizerLib.dll
mssccprj.scc
Properties
vssver.scc
VisualizerLib.csproj.vspscc
vssver.scc
vssver.scc
ListVisualizer_src_26082011.zip
DictionaryVisualizer.csproj.user
DictionaryVisualizer.csproj.vspscc
mssccprj.scc
vssver.scc
vssver.scc
DictionaryVisualizer2008.csproj.vspscc
mssccprj.scc
vssver.scc
vssver.scc
ListVisualizer.suo
ListVisualizer.vssscc
ListVisualizer.csproj.user
ListVisualizer.csproj.vspscc
mssccprj.scc
vssver.scc
vssver.scc
ListVisualizer2008.suo
ListVisualizer2008.vssscc
ListVisualizer2008.csproj.vspscc
mssccprj.scc
vssver.scc
vssver.scc
vssver.scc
vssver.scc
ListVisualizerTest.csproj.vspscc
mssccprj.scc
Settings.settings
vssver.scc
vssver.scc
mssccprj.scc
mssccprj.scc
vssver.scc
VisualizerLib.csproj.vspscc
vssver.scc
vssver.scc
|
using System;
using System.Collections;
using System.Collections.Generic;
using System.Reflection;
using System.Windows.Forms;
namespace VisualizerLib
{
public class DictionaryProcessor
{
#region Member variables/Properties
private IDictionary dict;
private IList m_keyList;
public IList KeyList
{
get { return m_keyList; }
set { m_keyList = value; }
}
#endregion
#region Constructor
public DictionaryProcessor(IDictionary d)
{
dict = d;
}
#endregion
#region Methods
public void CreateKeyList()
{
// Generate the key list
m_keyList = new ArrayList();
foreach (object key in dict.Keys)
{
m_keyList.Add(key);
}
}
public void GetDictionary(bool getKeys, object key, DataGridView grid)
{
// Check if it is not empty
if (dict.Count > 0)
{
object singleObj = null;
IDictionary<string, string> columns = new Dictionary<string, string>();
if (getKeys)
{
// Retrieve the key structure
foreach (object keyItem in dict.Keys)
{
singleObj = keyItem;
break;
}
}
else
{
// Retrieve the value structure
foreach (object valueItem in dict.Values)
{
singleObj = valueItem;
break;
}
}
Type typeObj = singleObj.GetType();
if (typeObj.IsPrimitive == false && typeObj.Name != "String")
{
// Retrieve the properties
PropertyInfo[] properties = typeObj.GetProperties();
foreach (PropertyInfo property in properties)
{
grid.Columns.Add(property.Name, property.Name);
grid.Columns[grid.Columns.Count - 1].SortMode = DataGridViewColumnSortMode.NotSortable;
columns.Add(property.Name, "P");
}
// Retrieve the fields
FieldInfo[] fields = typeObj.GetFields();
foreach (FieldInfo field in fields)
{
if (field.Name != "Empty")
{
grid.Columns.Add(field.Name, field.Name);
grid.Columns[grid.Columns.Count - 1].SortMode = DataGridViewColumnSortMode.NotSortable;
columns.Add(field.Name, "F");
}
}
}
// Value type
if (columns.Count == 0)
{
grid.Columns.Add(typeObj.Name, typeObj.Name);
grid.Columns[grid.Columns.Count-1].SortMode = DataGridViewColumnSortMode.NotSortable;
columns.Add(typeObj.Name, "V");
}
// Retrieve the fields and properties values
foreach (DictionaryEntry dicEntry in dict)
{
object item = null;
if (getKeys)
{
item = dicEntry.Key;
}
else
{
item = dict[key];
}
object[] row = new object[columns.Count];
int countRow = 0;
foreach (KeyValuePair<string, string> column in columns)
{
string name = column.Key;
string type = column.Value;
if (type == "P")
{
// Retrieve property value
row[countRow] = item.GetType().GetProperty(name).GetValue(item, null);
}
if (type == "F")
{
// Retrieve field value
row[countRow] = item.GetType().GetField(name).GetValue(item);
}
if (type == "V")
{
// Retrieve value type
row[countRow] = item.ToString();
}
countRow++;
}
grid.Rows.Add(row);
if (getKeys == false)
{
break;
}
}
}
}
#endregion
}
}
|
By viewing downloads associated with this article you agree to the Terms of use and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
I started development 22 years from now, since MSX basic. Started Windows programming with VB 2.0 and Web programming with ASP 3.0. Now I build Windows Forms, Web Applications, NT services and WPF applications using Microsoft.NET. I am MCP in Visual Basic 6.0, MCAD and MCSD.NET in Framework 1.1 ,MCPD Web in Framework 2.0, MCTS in .NET 3.5 workflow, MCTS in .NET 3.5 communication foundation and windows presentation foundation. Besides programming I love surfing.