.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 });
        }
    }
}
на самой форме есть comboBox1, dataGridView1, + компонент bindingSource1 сам класс
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>

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 3.8 из 5
Похожие ответы