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

  • »
  • Portal
  • |
  • Mitglieder
Beiträge von sacoma
Thema: ListBox mit 'ObservableCollection' über DataContext füllen
Am im Forum: GUI: WPF und XAML

Hallo Leute!

Vielen Danke für eure Antworten - ich werde mich dann mehr ins MVVM-Patter vertiefen...

Ich weiß, dasss ich noch viel lernen muss.

LG,

sacoma

Thema: ListBox mit 'ObservableCollection' über DataContext füllen
Am im Forum: GUI: WPF und XAML

Hallo Abt,

danke für die schnelle Antwort.

Ich muss wohl noch eine Menge lernen, denn leider verstehe ich nur die Hälfte von was du da geschrieben hast...
Wie schon geschrieben: ich bin Anfänger und das sind nur Übungen, um mich mit C# + WPF + DataBinding vertraut zu machen (das man die "ToString"-Methode so in der Praxis nicht nutzt ist mir klar ).

Wie wäre nun der richtige Weg um das Binding der Liste hinzubekommen?

Ich habe schon im Internet recherchiert, aber noch nichts gefunden...

LG,

sacoma

Thema: ListBox mit 'ObservableCollection' über DataContext füllen
Am im Forum: GUI: WPF und XAML

Hallo Leute,

ich bin Anfänger in C# und mache gerade ein paar Übungen in DataBinding.
Textboxen im Konstruktor mit DataContext zu füllen, beherrsche ich schon gut...

Ich versuche gerade eine ListBox über DataContext mit Daten von Autos (Datentyp ObservableCollection) zu füllen. Leider wird nichts in der Vorschau oder beim Ausführen des Programms angezeigt.
Bei 'ItemsSource="{Binding AutoListe}"' wird der Wert 'AutoListe' mit drei Punkten markiert und wenn ich mit der Maus drübergehen, erscheint die Quick-Info:

Fehler
Für Binding "AutoListe" wurde kein DataContext gefunden.


Beim Ausführen des Programm kommt die Binding-Fehlermeldung:
Fehler
Die Eigenschaft "AutoListe" wurde im Objekt vom Typ "ObservableCollection`1" nicht gefunden.


Ich habe keine Ahnung was ich falsch mache - bei den Textboxen lief alles einwandfrei...

Hat jemand eine Idee?
Danke für jede Hilfe im Voraus.

LG,

sacoma

PS:

Hier ist mein Code von der UI 'SubTemplates3.xaml':

<Window x:Class="NeuesFensterWPF.SubTemplates3"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:NeuesFensterWPF"
        mc:Ignorable="d"
        Title="DataTemplates" Height="400" Width="400">
    <Grid>
        <ListBox Name="MyListBox"  Margin="10" ItemsSource="{Binding AutoListe}">

        </ListBox>
    </Grid>
</Window>

Hier ist mein Code von der Code-Behind 'SubTemplates3.xaml.cs':

namespace NeuesFensterWPF
{
    /// <summary>
    /// Interaktionslogik für SubTemplates3.xaml
    /// </summary>
    public partial class SubTemplates3 : Window
    {
        public SubTemplates3()
        {
            InitializeComponent();
            ObservableCollection<Auto> AutoListe = new ObservableCollection<Auto>
            {
                new Auto() { Marke = "Audi", Modell = "R8", PS = 610, Logo = "Images/logo_audi.jpg" },
                new Auto() { Marke = "Bentley", Modell = "CS", PS = 630, Logo = "Images/logo_bentley.jpg" },
                new Auto() { Marke = "Lambo", Modell = "LP 700", PS = 700, Logo = "Images/logo_lambo.jpg" },
                new Auto() { Marke = "SEAT", Modell = "DSG", PS = 300, Logo = "Images/logo_seat.jpg" },
                new Auto() { Marke = "Skoda", Modell = "RS", PS = 230, Logo = "Images/logo_skoda.jpg" },
                new Auto() { Marke = "VW", Modell = "TDI 8", PS = 240, Logo = "Images/logo_vw.jpg" }
            };

            DataContext = AutoListe; 
        }
    }
}


Hier wäre noch der Code aus der Klasse 'Auto' falls es von Bedeutung ist:


namespace NeuesFensterWPF
{
    public class Auto
    {
        public string Marke { get; set; }
        public string Modell { get; set;}
        public int PS { get; set; }
        public string Logo { get; set; }

        public override string ToString()
        {
            //base.ToString();
            return $"Marke: {Marke} | Modell: {Modell} | Leistung: {PS} | Logo: {Logo}"; 
        }
    }
}

Thema: Fehlermeldung bei Datenbank-Verbindung
Am im Forum: Datentechnologien

Danke, BerndFfm!

Es funktioniert!

Ich hoffe, dass ich mal bald Hilfestellung geben kann.

LG,

sacoma

Thema: Fehlermeldung bei Datenbank-Verbindung
Am im Forum: Datentechnologien

Hallo Leute,

ich bin erst seit diesen Jahr mit der Umschulung zur Fachinformatikerin für Anwendungsentwicklung fertig geworden und totale Anfänger mit C# und Visual Studio IDE.

Wegen Jobwechsel muss ich aber fit darin werden...

Deshalb habe ich mir Visual Studio 2022 installiert und angefangen die Grundlagen zu lernen.

Leider scheitere ich gerade daran ein Programm mit einer Datenbankverbindung zu coden.

Es kommt folgende Fehlermeldung bei der Zeile mit dem Code-Befehl "verbindung.Open();", wenn ich das Programm ausführe:

Fehler
System.IO.FileNotFoundException
HResult=0x80070002
Nachricht = Could not load file or assembly 'System.Security.Permissions, Version=0.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. Das System kann die angegebene Datei nicht finden.
Quelle = MySql.Data
Stapelüberwachung:
bei MySql.Data.MySqlClient.MySqlConnection.AssertPermissions()
bei MySql.Data.MySqlClient.MySqlConnection.Open()
bei datenbank.Program.Main(String[] args) in C:\Users\HP\source\repos\datenbank\datenbank\Program.cs: Zeile30

Ich verstehe nicht, warum Visual Studio die Datei nicht findet, ich habe den Verweis unter Menü "Projekt -> Projektverweis hinzufügen..." folgenden Pfad hinzugefügt: "C:\Program Files (x86)\MySQL\Connector NET 8.0\Assemblies\v4.8\MySql.Data.dll"

Hier ist mein Code:



using MySql.Data.MySqlClient;

namespace datenbank
{
    internal class Program
    {
        static void Main(string[] args)
        {

            string verbindungsdaten = "SERVER=localhost;" + "DATABASE=db;" + "UID=admin;" + "PASSWORD=4d1nP4??w0rt;";
            
            MySqlConnection verbindung = new MySqlConnection(verbindungsdaten);
             
            Console.Write("Geben Sie bitte die Artikelnr. ein: ");
            int artikelnummer = int.Parse(Console.ReadLine());
            Console.WriteLine("Geben Sie bitte den Fahrradtyp ein: ");
            string typ = Console.ReadLine();
            Console.WriteLine("Geben Sie bitte die Farbe ein: ");
            string farbe = Console.ReadLine();
            Console.WriteLine("Geben Sie bitte den Preis ein: ");
            double preis = double.Parse(Console.ReadLine());

            string befehl = "INSERT INTO fahrraeder VALUES (" + artikelnummer + " , '" + typ + "', '" + farbe + "', " + preis +");";

            MySqlCommand befehlsobjekt = new MySqlCommand(befehl);
            befehlsobjekt.Connection = verbindung;

            verbindung.Open();
            befehlsobjekt.ExecuteNonQuery();
            verbindung.Close();

            string befehl2 = "SELECT * FROM fahrraeder;";
            MySqlCommand befehlsobjekt2 = new MySqlCommand(befehl2);
            
            befehlsobjekt2.Connection = verbindung;

            MySqlDataReader Reader;
            
            verbindung.Open();
            Reader = befehlsobjekt2.ExecuteReader();

            while (Reader.Read())
            {
                string zeile = "";
                for (int i =0; i < Reader.FieldCount; i++)
                {
                    zeile += Reader.GetValue(i).ToString() + " ";
                    Console.WriteLine(zeile);
                }
             }
            verbindung.Close();
        }
    }
}


Ich hoffe, dass mir hier jemand helfen kann, denn im Internet habe ich nichts zu meinem Problem gefunden.
Vielen Dank im Voraus.

LG,

sacoma