.NET 4.x Десериализация BindingList<> - C#
Формулировка задачи:
Всем привет, не могу понять почему при не забрасывает данные в DataGridView при использовании десериализации BindingList<>
С текстовым файлом всё работает отлично..и бинарным List<> тоже отлично, а вот с BindingList<> как-то не очень
Вот сам проект.
Lab2BD.rar
У кого будет время..скажите в чём дело..а то уже вторые сутки не могу найти ошибку.
namespace Lab2BD { [Serializable] class DataBase { public static BindingList<DataBase> MyBase = new BindingList<DataBase>(); public string FIO { get; set; } public string Birthday { get; set; } public string Group { get; set; } public string Number { get; set; } public string Adress { get; set; } public DataBase(string FIO, string Birthday, string Group, string Number, string Adress) { this.FIO = FIO; this.Birthday = Birthday; this.Group = Group; this.Number = Number; this.Adress = Adress; } public DataBase() { } public void Add(DataBase Item) { MyBase.Add(Item); } public void SaveToBinary() { BinaryFormatter binFormat = new BinaryFormatter(); using (Stream fStream = new FileStream("user.dat", FileMode.Create, FileAccess.Write, FileShare.None)) { binFormat.Serialize(fStream, MyBase); } } public void ReadFromBinary() { MyBase.Clear(); BinaryFormatter binFormat = new BinaryFormatter(); using (Stream fStream = new FileStream("user.dat", FileMode.Open, FileAccess.Read, FileShare.None)) { MyBase = (BindingList<DataBase>)binFormat.Deserialize(fStream); } } public void SaveToTxt() { using (StreamWriter SW = new StreamWriter("user.txt")) { foreach (DataBase Item in MyBase) { SW.WriteLine(Item.FIO + "|" + Item.Birthday + "|" + Item.Group + "|" + Item.Number + "|" + Item.Adress); } } } public void ReadFromTxt() { MyBase.Clear(); string ReadData = ""; using (StreamReader SR = new StreamReader("user.txt")) { while (!SR.EndOfStream) { DataBase Item = new DataBase(); ReadData = SR.ReadLine(); string[] SplitData = ReadData.Split('|'); Item.FIO = SplitData[0]; Item.Birthday = SplitData[1]; Item.Group = SplitData[2]; Item.Number = SplitData[3]; Item.Adress = SplitData[4]; Add(Item); } } } } }
Решение задачи: «.NET 4.x Десериализация BindingList<>»
textual
Листинг программы
private void OpenButton_Click(object sender, EventArgs e) { if (LoadSaveTextRB.Checked) { NewItem.ReadFromTxt(); } else { NewItem.ReadFromBinary(); MainDataGridView.DataSource = DataBase.MyBase; //<<---------- } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д