LINQ to XML und DataGridView

Hi Ich versuche, DataGridView zum ersten Mal und mit LINQ zu verwenden.

Folgendes versuche ich zu tun: Ich möchte es verwenden (obwohl es nicht für DataGridView erforderlich ist), um den Inhalt einer XML-Datei zu lesen und anzuzeigen (dieses Bit funktioniert im folgenden Code), aber ich möchte ein Schaltfläche zum Hinzufügen einer Zeile im Formular oder in der DataGridView, die den Inhalt von drei Textfeldern übernimmt und den Inhalt von drei Spalten der neuen Zeile auffüllt. Die neue Zeile soll an die vorhandenen Daten angehängt werden.

Next Ich möchte eine Löschen-Schaltfläche hinzufügen, um die aktuell ausgewählte Zeile zu löschen.

Und zum Schluss möchte ich eine Schaltfläche zum Speichern, mit der der Inhalt von DataGridView zurück in eine XML-Datei exportiert wird, wobei die vorhandene XML-Datei überschrieben / aktualisiert wird.

So blieb ich beim Hinzufügen der zusätzlichen Daten! aber da ich momentan keine ahnung habe, ob ich löschen oder speichern soll, dachte ich, ich würde alles auf einmal fragen !!

So ist dies der Code, den ich die XML-Datei lesen muss:

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-Dokument:

<?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>

ok Ich habe jetzt meinen Code in diesen geändert:

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;

Dies ermöglicht mir das Hinzufügen und Löschen von Zeilen und Daten aus der dataGridView:)

Aber ich kann immer noch keine Möglichkeit finden, die Daten aus der dataGridView oder der bindingSource1 in XML zurückzuschreiben:

Hilfe bitte? Die Anzahl BindingSource1.count ändert sich jedes Mal, wenn ich Änderungen an den Daten vornehme, sodass ich denke, dass ich nah dran bin!

Antworten auf die Frage(2)

Ihre Antwort auf die Frage