.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; //<<----------
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д