Привет, я пытаюсь использовать DataGridView впервые и с помощью LINQ.
Вот что я пытаюсь сделать:
Я хочу использовать его (хотя это не относится к DataGridView) для чтения и отображения содержимого файла XML (этот бит - рабочий код ниже), но я хочу, чтобы кнопка добавления строки была в форме или в DataGridView. он берет содержимое трех текстовых полей и заполняет содержимое трех столбцов новой строки. Новая строка должна быть добавлена к существующим данным.
Далее я хотел бы добавить кнопку Удалить, чтобы удалить выбранную строку.
И, наконец, я хочу кнопку сохранения, которая экспортирует содержимое DataGridView обратно в файл XML, перезаписывая / обновляя существующий файл XML.
Так что я застрял при добавлении дополнительных данных! но так как в настоящее время я не имею ни малейшего понятия об удалении или сохранении, я решил попросить все сразу!
Итак, вот код, который я должен прочитать в XML-файле:
XDocument xmlDoc = XDocument.Load(@"queues.xml");
var q = from c in xmlDoc.Root.Descendants("Queue")
select new
{
QueueNumber = c.Element("Number").Value,
QueueName = c.Element("Name").Value,
QueuePCC = c.Element("QueueTag").Value
};
dataGridView1.DataSource = q.ToList();
XML-документ:
<?xml version="1.0" encoding="utf-8" ?>
<Queues>
<Queue>
<Number>
001
</Number>
<Name>
mytest
</Name>
<QueueTag>
xyz
</QueueTag>
</Queue>
<Queue>
<Number>
002
</Number>
<Name>
Adi2
</Name>
<QueueTag>
ABCD
</QueueTag>
</Queue>
</Queues>
Хорошо, теперь я изменил свой код на это:
XDocument xmlDoc = XDocument.Load(@"queues.xml");
var q = from c in xmlDoc.Root.Descendants("Queue")
select new Queue
{
Number = c.Element("Number").Value,
Name = c.Element("Name").Value,
QueueTag= c.Element("QueueTag").Value
};
var queryAsList = new BindingList<Queue>(q.ToList());
bindingSource1.DataSource = queryAsList;
dataGridView1.DataSource = bindingSource1;
Это позволяет мне добавлять и удалять строки и данные из dataGridView:)
Но я все еще не могу найти способ записи данных обратно в XML ни из dataGridView, ни из bindingSource1: (
Любая помощь, пожалуйста?
bindingSource1.count меняется каждый раз, когда я изменяю данные, поэтому я думаю, что я близок!