Laden...

Wie über Button Elemente aus einer Liste abfragen, die in einer anderen Klasse sind?

Erstellt von Botographic vor 3 Jahren Letzter Beitrag vor 3 Jahren 311 Views
B
Botographic Themenstarter:in
1 Beiträge seit 2020
vor 3 Jahren
Wie über Button Elemente aus einer Liste abfragen, die in einer anderen Klasse sind?

Hallo zusammen,
ich bin recht neu im Programmieren von C# und versuche momentan, mir einen eigenen Vokabeltrainer zu schreiben. Ich habe meine Vokabeldateien in einem .cs-Dokument abgelegt und weiß nicht wirklich, wie ich nun vom Main (aka MainWindow.xaml.cs) darauf etwas abfragen will. Da ich recht neu in dieser Sprache weiß ich nicht, nach welchen Schlagworten man suchen muss, um Ergebnisse zu bekommen, also frage ich hier.

Verzeichnis:

Bild entfernt, siehe Anhang und [Hinweis] Wie poste ich richtig? // Coffeebean

vocab.cs:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Vokabeltrainer
{
    public class Vocabs
    {
        public static List<LateinVerben> Latein_Caesar = new List<LateinVerben>();
        
        public Vocabs()
        {
            /*
             Latein_Caesar.Add(new LateinVerben() { verb     = true, lateinisch = "", verbStammform1 = "", verbStammform2 = "", verbStammform3 = "", deutsch = "", merkhilfe = "" });
             Latein_Caesar.Add(new LateinVerben() { nomen = true, lateinisch = "", sonstigeForm = "", geschlecht = "", deutsch = "", merkhilfe = "" });
             Latein_Caesar.Add(new LateinVerben() { adjektiv = true, lateinisch = "", sonstigeForm = "", deutsch = "", merkhilfe = "" });
             Latein_Caesar.Add(new LateinVerben() { sonstige = true, lateinisch = "", sonstigeForm = "", deutsch = "", merkhilfe = "" });
            */

            //Seite 1
            

            Latein_Caesar.Add(new LateinVerben() { verb = true, lateinisch = "adducere", verbStammform1 = "adduco", verbStammform2 = "adduxi", verbStammform3 = "adductum", deutsch = "veranlassen, verleiten", merkhilfe = "" });
            Latein_Caesar.Add(new LateinVerben() { verb = true, lateinisch = "adficere", verbStammform1 = "adficio", verbStammform2 = "adfeci", verbStammform3 = "adfectum", deutsch = "jemanden mit etwas versehen/ausstatten", merkhilfe = "" });
            Latein_Caesar.Add(new LateinVerben() { verb = true, lateinisch = "animadvertere", verbStammform1 = "animadverto", verbStammform2 = "animadverti", verbStammform3 = "animadversum", deutsch = "erkennen, erfahren", merkhilfe = "" });
            Latein_Caesar.Add(new LateinVerben() { sonstige = true, lateinisch = "alter", sonstigeForm = "altera, alterum, Gen.: alterius", deutsch = "der eine, der andere", merkhilfe = "" });
            Latein_Caesar.Add(new LateinVerben() { verb = true, lateinisch = "arbitrare", verbStammform1 = "arbitro", verbStammform2 = "arbitravi", verbStammform3 = "arbitratus sum", deutsch = "meinen, glauben", merkhilfe = "" });
            Latein_Caesar.Add(new LateinVerben() { nomen = true, lateinisch = "auctoritas", sonstigeForm = "auctoritatis", geschlecht = "f", deutsch = "Ansehen", merkhilfe = "" });
            Latein_Caesar.Add(new LateinVerben() { nomen = true, lateinisch = "auxilium", sonstigeForm = "auxilii", geschlecht = "n", deutsch = "Hilfe", merkhilfe = "" });
            Latein_Caesar.Add(new LateinVerben() { adjektiv = true, lateinisch = "bellicosus", sonstigeForm = "bellicosa, bellicosum", deutsch = "kriegerisch", merkhilfe = "" });
            Latein_Caesar.Add(new LateinVerben() { sonstige = true, lateinisch = "bellum inferre", sonstigeForm = "", deutsch = "den Nachbarn Krieg bringen", merkhilfe = "" });
            Latein_Caesar.Add(new LateinVerben() { adjektiv = true, lateinisch = "bonus", sonstigeForm = "melior, optimus", deutsch = "gut", merkhilfe = "Weil er besonders GUT mitgemacht hat, bekam er einen BONUS vermerkt." });
            Latein_Caesar.Add(new LateinVerben() { nomen = true, lateinisch = "captivus", sonstigeForm = "captivi", geschlecht = "m", deutsch = "Gefangener", merkhilfe = "" });
            Latein_Caesar.Add(new LateinVerben() { nomen = true, lateinisch = "celeritas", sonstigeForm = "celeritatis", geschlecht = "f", deutsch = "Schnelligkeit", merkhilfe = "" });
            Latein_Caesar.Add(new LateinVerben() { verb = true, lateinisch = "certior fieri", verbStammform1 = "certior fio", verbStammform2 = "-", verbStammform3 = "certior factus sum", deutsch = "benachrichtigt werden", merkhilfe = "" });
            Latein_Caesar.Add(new LateinVerben() { verb = true, lateinisch = "aliquem certiorum facere de", verbStammform1 = "", verbStammform2 = "", verbStammform3 = "", deutsch = "jemanden über etwas benachrichtigen", merkhilfe = "" });
            Latein_Caesar.Add(new LateinVerben() { nomen = true, lateinisch = "civitas", sonstigeForm = "civitatis", geschlecht = "f", deutsch = "Bürgerschaft, Stamm, (selten: Bürgerrecht)", merkhilfe = "" });
            Latein_Caesar.Add(new LateinVerben() { verb = true, lateinisch = "cogere", verbStammform1 = "cogo", verbStammform2 = "coegi", verbStammform3 = "coactum", deutsch = "zusammenziehen, zwingen", merkhilfe = "" });
            Latein_Caesar.Add(new LateinVerben() { verb = true, lateinisch = "contendere", verbStammform1 = "contendo", verbStammform2 = "contendi", verbStammform3 = "-", deutsch = "eilen, sich beeilen", merkhilfe = "" });
            Latein_Caesar.Add(new LateinVerben() { nomen = true, lateinisch = "copia", sonstigeForm = "copiae", geschlecht = "f", deutsch = "Menge, Vorrat", merkhilfe = "" });
            Latein_Caesar.Add(new LateinVerben() { verb = true, lateinisch = "cognoscere", verbStammform1 = "cognosco", verbStammform2 = "cognovi", verbStammform3 = "cognitum", deutsch = "erkennen, erfahren", merkhilfe = "" });
            Latein_Caesar.Add(new LateinVerben() { verb = true, lateinisch = "conari", verbStammform1 = "cono", verbStammform2 = "-", verbStammform3 = "conatus sum", deutsch = "versuchen", merkhilfe = "" });
            Latein_Caesar.Add(new LateinVerben() { adjektiv = true, lateinisch = "confestim", sonstigeForm = "", deutsch = "unverzüglich, sofort", merkhilfe = "" });
            Latein_Caesar.Add(new LateinVerben() { nomen = true, lateinisch = "coniuratio", sonstigeForm = "coniurationis", geschlecht = "f", deutsch = "Verschwörung", merkhilfe = "" });
            Latein_Caesar.Add(new LateinVerben() { nomen = true, lateinisch = "consilium", sonstigeForm = "consilii", geschlecht = "n", deutsch = "Plan, Rat, Beschluss", merkhilfe = "" });
            Latein_Caesar.Add(new LateinVerben() { verb = true, lateinisch = "constituere", verbStammform1 = "constituo", verbStammform2 = "constitui", verbStammform3 = "constitutum", deutsch = "festsetzen, beschließen", merkhilfe = "" });
            Latein_Caesar.Add(new LateinVerben() { verb = true, lateinisch = "consumere", verbStammform1 = "consumo", verbStammform2 = "consumpsi", verbStammform3 = "consumptum", deutsch = "verbrauchen, verzehren", merkhilfe = "" });
            Latein_Caesar.Add(new LateinVerben() { nomen = true, lateinisch = "copiae", sonstigeForm = "copiarum", geschlecht = "f", deutsch = "die Truppen", merkhilfe = "" });
            Latein_Caesar.Add(new LateinVerben() { nomen = true, lateinisch = "cupiditas", sonstigeForm = "cupiditatis", geschlecht = "f", deutsch = "Begierde, Gier", merkhilfe = "" });
            Latein_Caesar.Add(new LateinVerben() { adjektiv = true, lateinisch = "cupidus", sonstigeForm = "cupida, cupidum (+ Gen.)", deutsch = "begierig nach", merkhilfe = "" });

        }

    }
        
    public class LateinVerben
    {
        public string lateinisch        { get; set; }
        public string verbStammform1    { get; set; }
        public string verbStammform2    { get; set; }
        public string verbStammform3    { get; set; }
        public string sonstigeForm      { get; set; }

        public string deutsch           { get; set; }
        public string merkhilfe         { get; set; }
        public string geschlecht        { get; set; }
        public bool verb                { get; set; }
        public bool nomen               { get; set; }
        public bool adjektiv            { get; set; }
        public bool sonstige            { get; set; }
    }
}

MainWindow.xaml.cs:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;


namespace Vokabeltrainer
{
    /// <summary>
    /// Interaktionslogik für MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        private void Button_Click(object sender, RoutedEventArgs e)
        {
            [ERROR]//hier soll etwas abgefragt werden[/ERROR]
        }
    }
}

Ich möchte auf Knopfdruck Werte aus der Liste abfragen, wie funktioniert das?

Danke im Voraus 😁

T
2.224 Beiträge seit 2008
vor 3 Jahren

Anstelle von WPF solltest du dich beim Einstieg lieber erst einmal mit einer Konsolenanwendung oder mit Winforms arbeiten.

WPF nutzt etwas forgeschrittene Techniken/Muster um dort sauberen Code zu schreiben.
Ebenfalls solltest du dir ein Buch o.ä. greifen und lesen oder ggf. Videotutorials anschauen.
Wenn es schon es noch an solch banalen Sachen happert, wäre eine WPF Anwendung zum lernen der Basics etwas overdosed.

Hier fehlt dir vermutlich nur das using um auf die Klasse zuzugreifen.
Ansonsten solltest du dich auch mit dem Thema OOP, was gerade in C# zu den Grundlagen gehört, einlesen.
Sonst fehlt dir einfach zu viel Stoff um mit C# richtig umzugehen!

Nachtrag:
Es wäre auch später besser, wenn du die Vokabeln aus einer Datei lesen würdest.
Jedes mal für neue Vokabeln das Programm neu erstellen zu müssen, ist auf dauer mühsam.

T-Virus

Developer, Developer, Developer, Developer....

99 little bugs in the code, 99 little bugs. Take one down, patch it around, 117 little bugs in the code.