VB: Combobox und XML Datei --> Label je nach Eingabe ändern

Muffel2k

Enthusiast
Thread Starter
Mitglied seit
19.10.2003
Beiträge
1.656
Ort
Schweiz
Moin,

ich arbeite mich gerade ein wenig in VB (arbeite mit Visual Studio Express 2012) ein und soweit komme ich recht gut klar doch nun habe ich ein Problem!
Mein Ziel ist ein kleines Programm das Werte aus einer XML Datei ausliest und dann je nach Auswahl in der ComboBox die entsprechenden Werte anzeigt. Bis jetzt habe ich folgendes:

XML File
<?xml version="1.0" encoding="utf-8"?>
<Materialien>
<Material name="Aluminium">
<Dichte>2</Dichte>
<EModul>70000</EModul>
</Material>
<Material name="Stahl">
<Dichte>6</Dichte>
<EModul>60000</EModul>
</Material>
<Material name="Inconel">
<Dichte>10</Dichte>
<EModul>6000000</EModul>
</Material>
</Materialien>

VB Code
Code:
Dim _dsData As DataSet = New DataSet()
_dsData.ReadXml("C:\Material.xml")
ComboBox1.DataSource = _dsData.Tables("Material")
ComboBox1.DisplayMember = "name"

Das funktioniert soweit ganz gut, ich kriege die Namen angezeigt nur wie kriege ich es hin das zum Beispiel bei der Auswahl von "Aluminium" die beiden Werte (Dichte & EModul) in Label2 und Label3 angezeigt werden? Natürlich sollten sich die Werte der Auswahl anpassen, sprich beim Wechsel auf Stahl sollten die entsprechenden Werte sich ändern.

Ganz schick wäre eine Lösung über Variablen, dann könnte ich diese gleich zu Berechnungen heranziehen.
 
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Schau dir mal den XMLSerializer an. Damit könntest du direkt eine SortedList of <von dir geschriebene Klasse> füllen. Zugriff wäre dann SortedList("Material").Dichte etc.
 
Das wäre auch ne Lösung gewesen, ich habe jetzt diesen Ansatz gewählt:

Form1
Code:
Dim _dsData As DataSet = New DataSet()
_dsData.ReadXml("C:\Material.xml")
ComboBox1.DataSource = _dsData.Tables("Material")
ComboBox1.DisplayMember = "name"

ComboBox1
Code:
Dim myDataRow As DataRowView = DirectCast(ComboBox1.SelectedItem, DataRowView)
Dim Dichte1 As String = myDataRow(0)
Dim Zahl As Integer
Zahl = Val(Dichte1) * 2
Label2.Text = myDataRow(0).ToString
Label3.Text = myDataRow(1).ToString
Label4.Text = Zahl

Mit dem Integer "Zahl" bin ich grad n bissel am ausprobieren
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh