Є ось така база даних. Додаю кілька полів в DGV, а потім мені потрібно в обробнику подія (Import in XML) все ті дані що були в DGV імпортувати в XML файл.Код сериализации вставляв в кнопку Add, але тоді в XML зберегти міг тільки один запис, ту яку додавав першу. А мені треба сначал додати кілька в грід, а тоді все в XML.
Для початку, слід подумати: а чи потрібно дублювати дані в xml-файл, якщо вони вже збережені в БД? База даних для того і призначена, щоб дані можна було легко додавати, видаляти, змінювати, шукати. Якщо для якихось цілей все ж знадобляться дані в форматі xml, то їх завжди можна отримати прямо з БД. Одна з можливостей - команда FOR XML.
Відповідь непосредстенно на ваше запитання. Заведіть список об'єктів Friend (перейменуйте клас, Visual Studio автоматично зробить зміни в усьому проекті).
Це повинно бути поле тієї форми, де виконується сериализация.
Отримавши черговий екземпляр цього класу, додавайте його в цю колекцію:
Щоб завершити введення всіх даних буде закінчений, серіалізуем весь список:
Судячи з скриншоту, цей код слід помістити в обробник кнопки "Export". До речі, виклик db.SaveChanges (); я б переніс туди ж.
Зверніть увагу: серіалізатор повинен бути створений відповідного типу; на вхід йому подаємо не один екземпляр, а колекцію.
Десеріалізовать, відповідно, потрібно колекцію, виконуючи приведення до List