Я ожидаю, что у вашего dgv нет действительного источника данных.См. здесь для получения информации о том, как связать источник данных. Как вы заполнили dgv данными?
Вы можете попробовать сериализацию, но DataGridView не сериализуем, вам нужно будет выполнить итерациюdgv (datagridview) и добавьте каждый элемент в коллекцию.Вероятно, было бы лучше создать структуру, которая будет представлять данные вашего dgv и объявить это как [Serializable()]
.Каждое поле может быть сохранено в виде строки, поэтому просто переберите dgv, вызовите ToString()
для каждого элемента и добавьте его в экземпляр вашей структуры.Выполните итерацию по строкам вашего dgv примерно так:
for (int i = 0; i < dgv.Rows.Count; i++)
{
//add each row and item to your structure
}
В качестве альтернативы, если у вас есть источник данных, его можно сериализовать более напрямую.
Итак, теперь у вас есть коллекция, которая сериализуема.и он заполнен всеми вашими данными.Теперь вам нужно сериализовать эту структуру и затем записать ее в файл, например:
XmlSerializer izer = new XmlSerializer(YourStructure.GetType());
TextWriter WriteFileStream = new StreamWriter(@"c:\1.xml");
izer.Serialize(WriteFileStream, YourStructure);
WriteFileStream.Close();
Надеюсь, это поможет, информацию о сериализации можно найти здесь .Помните, что вы можете создать обработчик для события кнопки OnClick, дважды щелкнув по кнопке в режиме конструктора.