.NET 4.x Разработать приложение Windows Forms, позволяющее организовать телефонную книгу - C#
Формулировка задачи:
Разработать приложение Windows Forms, позволяющее организовать телефонную книгу.
Требования:
1. Данные должны сохраняться при закрытии приложения.
2. Для каждой персоны необходимо сохранять несколько контактов.
3. Пользователь может добавлять, изменять и удалять персон или контакты.
Примечание: список персон и контактов реализовать используя тип BindingList<>.
_Saves
null; класс персонаusing System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Lab25
{
[Serializable]
class Person
{
[Serializable]
internal class Contact
{
String _Type_Contact,
_Value_Contact;
public String Type_Contact
{
get { return _Type_Contact; }
set { _Type_Contact = value; }
}
public String Value_Contact
{
get { return _Value_Contact; }
set { _Value_Contact = value; }
}
}
String /*_Family_Name,//Фамилия
_Name,//Имя
_Middle_Name,*/
_FIO; //Отчество
/*public String Family_Name
{
get { return _Family_Name; }
set { _Family_Name = value; }
}
public String Name
{
get { return _Name; }
set { _Name = value; }
}
public String Middle_Name
{
get { return _Middle_Name; }
set { _Middle_Name = value; }
}*/
public String FIO
{
get { return _FIO; }
set { _FIO = value; }
}
List<Contact> _Contact = new List<Contact>();//Список контактов;
public List<Contact> _Contacts
{
get { return _Contact; }
}
/// <summary>
/// Добавляет контакт для персоны
/// </summary>
/// <param name="_Type_Contact">Тип контакта ISQ/Telephone/Skype</param>
/// <param name="_Value_Contact">Контактные данные Номер/ID</param>
public void Add_Contact(String _Type_Contact, String _Value_Contact)
{
_Contact.Add(new Contact { Type_Contact = _Type_Contact, Value_Contact = _Value_Contact });
}
/// <summary>
/// Удаляет контакт персоны
/// </summary>
/// <param name="_Type_Contact">Тип контакта ISQ/Telephone/Skype</param>
/// <param name="_Value_Contact">Контактные данные Номер/ID</param>
public void Delite_Contact(String _Type_Contact, String _Value_Contact)
{
_Contact.Remove(new Contact { Type_Contact = _Type_Contact, Value_Contact = _Value_Contact });
}
}
}using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Runtime.Serialization.Formatters.Binary;
using System.Xml.Serialization;
using System.IO;
namespace Lab25
{
public partial class FRM_Main : Form
{
public FRM_Main()
{
InitializeComponent();
}
BindingList<Person> Contacts = new BindingList<Person>();
private void FRM_Main_Load(object sender, EventArgs e)
{
//Contacts.Add(new Person { Family_Name="zzz", Middle_Name="hj", Name="jkhj" });
Contacts.Add(new Person {FIO = "GHJ jkef eh" });
Contacts[0].Add_Contact("isq", "5565");
comboBox1.DataSource = Contacts;
}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
if ((sender as ComboBox).Items.Count!= 0)
bindingSource1.DataSource = Contacts[(sender as ComboBox).SelectedIndex]._Contacts;
dataGridView1.DataSource = bindingSource1;
}
private void FRM_Main_FormClosed(object sender, FormClosedEventArgs e)
{
XmlSerializer _Saves = new XmlSerializer(typeof(BindingList<Person>)); //тут вылетает
using (FileStream _fs = new FileStream("base.xml", FileMode.Create))
_Saves.Serialize(_fs, Contacts);
}
}
}Решение задачи: «.NET 4.x Разработать приложение Windows Forms, позволяющее организовать телефонную книгу»
textual
Листинг программы
<?xml version="1.0" encoding="utf-8"?> <ArrayOfPerson xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <Person> <LFP>Сергеев Сергей сергеевич</LFP> <Contacts> <Contact> <TypeContact>iсq</TypeContact> <ValueContact>5565</ValueContact> </Contact> </Contacts> </Person> <Person> <LFP>Алексеев Алексей Алексеевич</LFP> <Contacts /> </Person> </ArrayOfPerson>