Запись/загрузка класса в/из xml - C#
Формулировка задачи:
Доброго времени суток!
Помогите примером, пожалуйста, так как третий день не могу єто сделать.
Есь форма, в ней 4 чекбокса.Отдельно создан класс где объявлены 4 переменные, в зависимости от значений которых, чекбоксы должны менять свое состояние. При закрытии формы текущее состояние чекбоксов сохраняется в xml, откуда и загружается при повторном открытии формы.
З.Ы.
Я код-то написал, но xml-файл у меня получается пустой. Где-то сделал ошибку, а где понять не могу, поэтому и нужен пример, чтобы сравнить...
Решение задачи: «Запись/загрузка класса в/из xml»
textual
Листинг программы
public partial class SymbolsList : Form
{
public SymbolsList()
{
GlobalVars.WorkList.Clear();
SymbolListSettings.Load(); //<< Ошибка была, т.к. SymbolListSettings.settings изначально null
InitializeComponent();
}
private void checkBox0_CheckedChanged(object sender, EventArgs e)
{
Symbol n = new Symbol();
if (checkBox0.Checked)
{
n.picture = Properties.Resources._0;
n.request = Properties.Resources.find_me_number;
n.sound = Properties.Resources.n0;
n.Kcode1 = Keys.NumPad0;
n.Kcode2 = Keys.D0;
n.type = 1;
n.activ = true;
GlobalVars.WorkList.Add(n);
}
}
private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
Symbol n = new Symbol();
if (checkBox1.Checked)
{
n.picture = Properties.Resources._1;
n.request = Properties.Resources.find_me_number;
n.sound = Properties.Resources.n1;
n.Kcode1 = Keys.NumPad1;
n.Kcode2 = Keys.D1;
n.type = 1;
n.activ = true;
GlobalVars.WorkList.Add(n);
}
}
private void checkBox2_CheckedChanged(object sender, EventArgs e)
{
Symbol n = new Symbol();
if (checkBox2.Checked)
{
n.picture = Properties.Resources._2;
n.request = Properties.Resources.find_me_number;
n.sound = Properties.Resources.n2;
n.Kcode1 = Keys.NumPad2;
n.Kcode2 = Keys.D2;
n.type = 1;
n.activ = true;
GlobalVars.WorkList.Add(n);
}
}
private void checkBox3_CheckedChanged(object sender, EventArgs e)
{
Symbol n = new Symbol();
if (checkBox3.Checked)
{
n.picture = Properties.Resources._3;
n.request = Properties.Resources.find_me_number;
n.sound = Properties.Resources.n3;
n.Kcode1 = Keys.NumPad3;
n.Kcode2 = Keys.D3;
n.type = 1;
n.activ = true;
GlobalVars.WorkList.Add(n);
}
}
private void LoadList() //завантаження станів чекбоксів із класса
{
checkBox0.Checked = SymbolListSettings.settings.ck0;
checkBox1.Checked = SymbolListSettings.settings.ck1;
checkBox2.Checked = SymbolListSettings.settings.ck2;
checkBox3.Checked = SymbolListSettings.settings.ck3;
}
private void SaveList() //запис стану чекбоксів в клас
{
SymbolListSettings.settings.ck0 = checkBox0.Checked;
SymbolListSettings.settings.ck1 = checkBox1.Checked;
SymbolListSettings.settings.ck2 = checkBox2.Checked;
SymbolListSettings.settings.ck3 = checkBox3.Checked;
}
private void button_OK_Click(object sender, EventArgs e)
{
SaveList();
SymbolListSettings.settings.Save();
Close();
}
}
}