private void FillGridMissing() { int sortColIndex = gridMissing.SortedByColumnIdx; bool isSortAscending = gridMissing.SortedIsAscending; gridMissing.BeginUpdate(); gridMissing.Columns.Clear(); ODGridColumn col = new ODGridColumn(Lan.g(this, "RxNorm"), 70, GridSortingStrategy.StringCompare); gridMissing.Columns.Add(col); col = new ODGridColumn(Lan.g(this, "Drug Description"), 0, GridSortingStrategy.StringCompare); gridMissing.Columns.Add(col); gridMissing.Rows.Clear(); List <MedicationPat> listMedPats = MedicationPats.GetAllMissingMedications(); Dictionary <string, List <MedicationPat> > dictMissingUnique = new Dictionary <string, List <MedicationPat> >(); foreach (MedicationPat medPat in listMedPats) { string key = medPat.RxCui.ToString() + " - " + medPat.MedDescript.ToLower().Trim(); if (!dictMissingUnique.ContainsKey(key)) { dictMissingUnique[key] = new List <MedicationPat>(); ODGridRow row = new ODGridRow(); row.Tag = dictMissingUnique[key]; if (medPat.RxCui == 0) { row.Cells.Add(""); } else { row.Cells.Add(medPat.RxCui.ToString()); } row.Cells.Add(medPat.MedDescript); gridMissing.Rows.Add(row); } dictMissingUnique[key].Add(medPat); } gridMissing.EndUpdate(); gridMissing.SortForced(sortColIndex, isSortAscending); }