private void dict_Open(object sender, EventArgs e) { if (dialog_Open.ShowDialog() == DialogResult.OK) { String filename = dialog_Open.FileName; try { blockDetails.Columns.Clear(); blockDetails.Rows.Clear(); mDictionary = BlockDictionary.FromFile(filename); List<String> columns = mDictionary.GetAttributes(); foreach ( String col in columns ) { blockDetails.Columns.Add(col, col); } Dictionary<int, BlockTemplate>.Enumerator templateEnum = mDictionary.GetEnumerator(); while ( templateEnum.MoveNext() ) { int rowID = blockDetails.Rows.Add(); Dictionary<String, object>.Enumerator attrEnum = templateEnum.Current.Value.GetEnumerator(); while ( attrEnum.MoveNext() ) { blockDetails.Rows[rowID].Cells[attrEnum.Current.Key].Value = attrEnum.Current.Value; } } } catch (System.Exception ex) { System.Windows.Forms.MessageBox.Show("Error loading dictionary:\n" + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } }