private void LoadFile(string filename) { BinaryReader reader = new BinaryReader(new FileStream(filename, FileMode.Open)); int appCount = reader.ReadInt32(); appInfos.Clear(); DataTable dt = new DataTable(); foreach (FieldInfo pInfo in typeof(AppInfo).GetFields()) { dt.Columns.Add(pInfo.Name, pInfo.FieldType); } for (int i = 0; i < appCount; ++i) { AppInfo appInfo = new AppInfo(); appInfo.read(reader); appInfos.Add(appInfo); object[] fields = new object[typeof(AppInfo).GetFields().Length]; int j = 0; foreach (FieldInfo pInfo in typeof(AppInfo).GetFields()) { fields[j++] = pInfo.GetValue(appInfo); } dt.Rows.Add(fields); } dataGridView1.DataSource = appInfos; reader.Close(); }