Combobox aus Xml datei füllen und werte zuweisen

  • VB.NET

Es gibt 11 Antworten in diesem Thema. Der letzte Beitrag () ist von Alex - AK.

    Combobox aus Xml datei füllen und werte zuweisen

    Hallo

    Ich möchte ein kleines Tool erstellen,
    ich weiß aber nicht wie ich es umsetzen soll.

    Hab schon einige Sachen gefunden nur nicht das was ich suche.

    Ich habe eine combobox, bevor das toll startet ladet es alle Namen in die combobox,
    Eintrag1
    Eintrag2
    Eintrag3
    Eintrag4
    Eintrag5

    in den zwei labels sollen dann für dem entsprechenden Eintrag die werte ausgegeben werden
    Eintrag1
    Label1 = 20
    Label2 = 90


    kann mir jemand sagen wie ich das mit dem ComboBox1_SelectedIndexChanged lösen kann
    ich bin Anfänger das heißt ich hab nicht so viel Ahnung ich mach das nur hobby weise

    und im netz hab ich bis jetzt nichts gefunden



    XML-Quellcode

    1. <?xml version='1.0' ?>
    2. <KundenDaten>
    3. <Kunde Id = "1" Name = "Eintrag1" lbl1awert = "20" lbl2awert = "90"/>
    4. <Kunde Id = "2" Name = "Eintrag2" lbl1awert = "40" lbl2awert = "60"/>
    5. <Kunde Id = "3" Name = "Eintrag3" lbl1awert = "50" lbl2awert = "45"/>
    6. <Kunde Id = "4" Name = "Eintrag4" lbl1awert = "70" lbl2awert = "10"/>
    7. <Kunde Id = "5" Name = "Eintrag5" lbl1awert = "30" lbl2awert = "66"/>
    8. </KundenDaten>




    VB.NET-Quellcode

    1. Imports System.IO
    2. Public Class Form1
    3. Dim phat As String = Application.StartupPath & "\Kunde.xml"
    4. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    5. If Not File.Exists(phat) Then Exit Sub
    6. Dim ds As New DataSet("KundenDaten")
    7. ds.ReadXml(phat)
    8. Dim bs As New BindingSource(ds, "Kunde")
    9. Me.ComboBox1.DataSource = bs
    10. Me.ComboBox1.DisplayMember = "Name"
    11. End Sub
    12. Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
    13. '(Eintrag1)
    14. lbl1ausgabewert.text = 'Xml.lbl1awert (20)
    15. lbl2ausgabewert.text = 'Xml.lbl2awert (90)
    16. End Sub
    17. End Class

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von „Alex - AK“ ()

    Wenn du auf das SelectedIndexChange-Event reagierst kannst du doch ebensogut eine der folgenden Propertys abfragen:
    • SelectedIndex
    • SelectedItem
    • SelectedText
    • SelectedValue

    Wenn du das nicht meinst, versuch deine Frage nochmal klarer zu formulieren!
    Naja die Idee ist das du im SelectedIndexChanged dir den ausgewählten Index schnappst und daraus die Einträge ausliest.

    Wie sieht dein Dataset genau aus? Weil wenn das vernünftig eingelesen ist, hast du ja schon alle Daten im DS
    dann kannste über den Namen aus dem DS für lbl1 = lbl1awert usw auslesen.

    Warum willste denn nochmal extra über die XML gehen wenn du es schon einmal eingelesen hast?

    Gruß
    also ich hab den Eindruck, du möchtest eine Daten-Tabelle laden und speichern, und möchtest sie in einem DetailView zur Bearbeitung präsentieren.

    Dazu muß man nur die Combo an dieselbe BindingSource binden wie die Labels. Speichern würde ich das keinesfalls als Xml, sondern DatasetOnly: Daten laden, speichern, verarbeiten
    ich habs ^^

    VB.NET-Quellcode

    1. Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
    2. Dim dt As DataTable = ds.Tables("Kunde")
    3. Dim dr As DataRow = dt.Rows(ComboBox1.SelectedIndex)
    4. Label1.Text = dr.Item("lbl1awert")
    5. Label2.Text = dr.Item("lbl2awert")
    6. End Sub