.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; //<<----------
}
}