Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Dropdownmenüs aus XML
GIBBI
myCSharp.de - Member



Dabei seit:
Beiträge: 8

Themenstarter:

Dropdownmenüs aus XML

beantworten | zitieren | melden

Hallo zusammen,

ich arbeite mich gerade in C# ein und probiere 2 Komboboxen als Dropdownmenü mit den Informationen aus einer XML-Datei zu bestücken.

Das Ganze Soll nachher beispielsweise so aussehen:

1. Kombobox: Auswahl zwischen Obst und Gemüse.
2. Kombobox: Gibt entweder 5 Obst- oder 5 Gemüsesorten zur Auswahl

Ist dieses Vorhaben ohne weiteres realisierbar? Ich stehe hier gerade irgendwie auf dem Schlauch. Die erste Dropdownliste ist kein Problem, anhand der ersten Auswahl die zweite zu beeinflussen kriege ich allerdings nicht hin.

      
  public void BindDropDown()
        {
            XmlTextReader xmdatareader = new XmlTextReader("Xml/test.xml");
            DataSet _objdataset = new DataSet();
            _objdataset.ReadXml(xmdatareader);

            comboBox1.DataSource = _objdataset.Tables[0];
            comboBox1.DisplayMember = "Name";
            comboBox1.ValueMember = "Id";

         //   comboBox2.DataSource = _objdataset.Tables[0];
        //    comboBox2.DisplayMember = "Sorte";
        //    comboBox2.ValueMember = "SorteId";
        }

Das hier mal als Beispiel XML

<?xml version="1.0" encoding="utf-8" ?>

<Nahrung>

  <Art>
    <Id>1</Id>
    <Name>Obst</Name>
  </Art>

  <Art>
    <Id>2</Id>
    <Name>Gemuese</Name>
  </Art>

</Nahrung>

Wie füge ich jetzt die verschiedenen Obst und Gemüsesorten in meiner XML ein und greif sie in meinem Programm wieder auf?

Sorry für die Anfängerfrage, aber ich arbeite mich gerade wie gesagt erst in die ganze Materie ein.

Vielen Dank schonmal!
GIBBI
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von GIBBI am .
private Nachricht | Beiträge des Benutzers
bredator
myCSharp.de - Member



Dabei seit:
Beiträge: 368

beantworten | zitieren | melden

Ich würde dir empfehlen, dir das Thema Objektserialisierung in C# anzusehen. So ließe sich etwa folgende Klassen bauen:

class Nahrung
{
   List<claArt> listArten;

   public Nahrung()
   {
   }
}

class claArt
{
   string strName;
   List<string> listItems;

   public claArt()
   {
   }
}

Die Klasse Nahrung lässt sich dann wie folgt serialisieren:

FileStream stream = new FileStream("test.xml", FileMode.Create);
XmlSerializer serializer = new XmlSerializer(typeof(Nahrung));
serializer.Serialize(stream, this);
stream.Close();

Deine mit Daten bestückten Objekte sind jetzt zu einer XML-Datei gewandelt. Auslesen lässt sich diese ähnlich einfach:

XmlSerializer serializer = new XmlSerializer(typeof(Nahrung));
FileStream stream = new FileStream("test.xml", FileMode.Open);
Nahrung na = (Nahrung)serializer.Deserialize(stream);
stream.Close();

Deine Objekte sind aus der XML-Datei wiederhergestellt worden. Dann sollte es vollends einfach sein, die jeweiligen List-Objekte zu durchlaufen und die Dropdown-Menüs mit Inhalten zu füllen, je nachdem, welches Item darin ausgewählt wurde.

Edit: Natürlich ist das noch kein vollständiger Code. List-Objekte müssen erst noch mit new erstellt werden usw. Aber ich denke, als Grundgerüst kann man was damit anfangen.
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von bredator am .
private Nachricht | Beiträge des Benutzers