Laden...

File auslesen und Einträge in Combobox füllen

Erstellt von NorbertX21 vor 5 Jahren Letzter Beitrag vor 5 Jahren 1.315 Views
N
NorbertX21 Themenstarter:in
7 Beiträge seit 2019
vor 5 Jahren
File auslesen und Einträge in Combobox füllen

Hallo,

ich möchte ein kleines Programm mit C# schreiben und ich bin auch schon weit gekommen. Jetzt möchte ich noch ein paar Dinge, die ich vorher etwas anders gemacht habe, verbessern. Ich verwende WPF, es soll folgedes können:

Auf der Startseite befindet sich ein Menü wo man einen Benutzernamen und ein Passwort eingeben kann, danach werden zu der jeweiligen Person Vor- und Nachname und eine BenutzerID geladen. Diese Daten werden in jeweils eine Textbox geschrieben. Das klappt alles schon, bin zufrieden damit. Ich habe auf Seite 2 eine Combobox eingefügt, dort kann man einen Kurs auswählen, nachdem man sich angemeldet hat. Die Einträge die in der Combobox stehen hab ich alle so eingetragen:

<ComboBoxItem Name="Kunst">Item1</ComboBoxItem>
<ComboBoxItem Name="Geschichte">Item2</ComboBoxItem>

Jedem Benutzer werden alle möglichen Kurse angeboten. Das Angebot an Kursen ändert sich jedes Semester. Die Kurse kann man exportieren und in eine Textdatei speichern, dort steht aber viel mehr drin als ich benötige. Ich habe es auch schon geschafft den Inhalt in die Combobox zu laden. Jetzt wolte ich euch fragen ob ihr mir ein bisschen weiterhelfen könntet. Ich möchte dass in meiner Combobox nur die Kursbezeichnung drinsteht. Ich weiss dass man mit dem Befehl ReadToEnd bis zum Ende der Datei liest aber ich möchte nur Spalte A, in dem Fall bis zum Trennzeichen |

In der Textdatei steht folgendes drin:

Kunst|Beginn 08:00 Uhr|Ort Beethovestr. 49
Geschichte|Beginn 13:30 Uhr| Ort Beethovenstr. 49
...

Mein Code:

Private void Window_Loaded(object sender, RoutedEvent Args e)

{
     StreamReader sr = new StreamReader(@"mein Pfad");
string x = sr.ReadToEnd();
string[] y = x.Split('|');
foreach (string s in y)

{
    Combobox1.Items(Add(s);
}
}

Gruß Norbert

16.806 Beiträge seit 2008
vor 5 Jahren

In WPF sollte man immer mit MVVM arbeiten; siehe WPF Basics.
[Artikel] MVVM und DataBinding

Ergo Daten in das ViewModel bringen und dann das XAML binden (siehe Tutorial).
Die Inhalte ansonsten eben Zeilenweise lesen, bei | splitten und dann den jeweiligen gewünschten Index nehmen, um damit die Combobox zu füllen.

Wenn Du nicht weißt, welche Inhalte eine Variable hat => [Artikel] Debugger: Wie verwende ich den von Visual Studio?
Wenn Du noch dazu Variablenbezeichner verwendest, die mehr aussagen als x und y, dann wird auch der Code für Dich verständlicher.
Danach sieht es nämlich aus, denn "s" ist nicht der Kurs, sondern JEDER Eintragen einer Zeile. Dir fehlt der Index-Zugriff auf das Array.