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 KingMike
Thema: Klassenmember einer Klasse als DataSource zuweisen
Am im Forum: GUI: Windows-Forms

Hallo Community,

ich habe folgende Konstellation:

Es gibt zwei Klassen: Klasse 1 und Klasse 2.
Klasse 1 hat eine Liste von Klasse 2 als Member.

Um Klasse 1 in einem DataGridView anzuzeigen habe ich eine BindingList aus Klasse 1 erstellt. Ich würde jetzt gerne die Daten aus dem Member Klasse 2 in diesem DataGridView anzeigen (datagridview1.datasource = Klasse1.Klasse2). Leider komme ich jedoch in dieser Konstallation nicht ran, da ich bei der BindingList nicht auf das Klassenmember "Klasse 2" darauf zugreifen kann :(. Hat jemand von euch eine Idee, wie ich das lösen kann? Oder war mein Ansatz vielleicht schon richtig und ich hab nur etwas übersehen? Ich komme leider nicht weiter.

Bei Unklarheiten bitte einfach nachfragen ;)

Wäre super, wenn Ihr mir weiterhelfen könntet.

Viele Grüße und danke schon mal

Thema: [gelöst] Best Practice: Daten aus DataGridView an eigene Klasse zur Verarbeitung übergeben
Am im Forum: GUI: Windows-Forms

Hallo Zusammen,

super Danke! :) Hat genau so funktioniert wie Ihr es mir geschildert habt.

Danke für Eure Hilfe, Ihr habt mir wirklich einiges klar gemacht. Ich habe diesbezüglich noch eine andere Frage und werde hierzu einen neues Thema eröffnen.

Viele Grüße

Thema: [gelöst] Best Practice: Daten aus DataGridView an eigene Klasse zur Verarbeitung übergeben
Am im Forum: GUI: Windows-Forms

Hallo Ihr beiden,

danke für eure schnelle Antwort . D.h. wenn ich ich die "Logikklasse" dann an die "DataGridView" binde, wirkt sie sozusagen als Liste und ich kann dann später im Code auf diese Liste mit dem jeweiligen Index zugreifen oder? Ich denke ich hab das richtig verstanden? 8)

@Th69: Die DataTable habe ich eigentlich nur deswegen erstellt um die Daten in der DataGridView darzustellen. Die Daten werden nur vom Anwender eingegeben. Eine Datenbank oder ähnliches steckt vorerst noch nicht dahinter.

@Schildkroete: Danke Das werde ich doch glatt mal ausprobieren

@all: Jetzt hab ich aber noch eine Frage an euch beide zur Trennung von Oberfläche und Logik.

Angenommen es würde jetzt kein DataGridView verwendet werden sondern einfach auf der Form platzierte Textboxen und 4 Buttons mit denen ich einen Datensatz zurück, einen Datensatz vor gehen, einen Datensatz löschen und einen Datensatz einfügen kann. Hier würde ich dann der Form auch wieder eine Liste<Logikklasse> zuweisen und dann die Daten in den jeweiligen Buttons aus der Liste auslesen bzw. einfügen, hab ich recht? 8) Wobei ich glaube in diesem Fall gibt es ja das Control BindingNavigator mit dem man es realisieren könnte oder? Hier würde ich dann als DataSource wahrscheinlich auch wieder meine Liste auswählen? Stimmts?

Also im Grunde genommen wäre meine im ersten Post geschriebene Variante unsauber oder?

Thema: [gelöst] Best Practice: Daten aus DataGridView an eigene Klasse zur Verarbeitung übergeben
Am im Forum: GUI: Windows-Forms

Hallo Zusammen,

ich brauche eure Hilfe :D. Ich möchte mir zum Üben eine Art Zeiterfassung schreiben und dabei View von Verarbeitungslogik trennen.

In einem DataGridView kann der Anwender seine Zeiten eintragen. Das DataGridView hat als DataSource ein DataTable mit den folgenden Feldern: Datum, Tätigkeit, Startzeit, Endzeit, Benötigte Zeit in Minuten. Um die Daten jetzt zu validieren (z.B. ob eine korrekte Uhrzeit / korrektes Datum eingegeben wurde; Berechnung der Benötigten Zeit in Minuten) habe ich mir gedacht eine eigene Klasse zu bauen, die diese Logik beinhaltet.

Die Frage die sich jetzt mir stellt ist die, wie man es am saubersten macht. Aktuell habe ich der Form eine Liste der "Logikklasse" gegeben. Diese Logikklasse beinhaltet die Eigenschaften "Datum", "Tätigkeit", "Startzeit", "Endzeit", "Benötigte Zeit in Minuten". Jedesmal wenn ein Datensatz im DataGridView angelegt wird, wird der Liste auch ein weiteres Element hinzugefügt. Wenn ein Feld des Datensatzes (im DataGridView) validiert (über das Event "CellValidating") wird, schreibe ich dann den jeweiligen Feldwert in dieses Element der Liste, der Logikklasse (Zuweisung zur Eigenschaft der Logikklasse). Mit der Logikklasse kann dann auch die jeweilige Zeile exportiert werden, weshalb ich ja die Daten aus der View an diese Klasse weiterleiten muss.

Ich bin mir nicht wirklich sicher ob das sauber ist. Was meint Ihr denn dazu bzw. wie macht man denn sowas gewöhnlich? Für den Fall, dass es alles andere als sauber ist, könntet Ihr mir vielleicht auf die Sprünge helfen? Ich hab da so meine Zweifel :tongue: Ich hoffe Ihr wisst was ich meine Wenn nicht könnt Ihr gerne nachfragen.

Wäre wirklich toll.

Vielen Dank und beste Grüße schon mal für eure Hilfe

Thema: DLL in andere DLL einbetten
Am im Forum: Rund um die Programmierung

Zitat von theYoRecords
Meine Frage ist jetzt, ob das bei DLLs auch irgendwie möglich ist (obwohl sie keinen Einstiegspunkt haben an dem man seine Methode für das AssemblyResolve-Event anmelden könnte.

Mh gute Frage, damit hatte ich dann doch noch nicht zu tun. Ich dachte an folgendes:
Du erstellst DLL1, die von DLL2 auf Klassen zurückgreift. In diesem Fall eben ganz einfach den Verweis der DLL2 im Projektexplorer von DLL1 hinzufügen. Aber wenn ich das jetzt richtig verstanden habe, dann hat das damit nichts zu tun :(...

Thema: [erledigt]Verzweiflung mit WebRequest (Protokollfehler)
Am im Forum: Netzwerktechnologien

AHHHHHHHHHHH ich werde wahnsinnig -.-

Ich habe das Problem jetzt selbst lösen können. Es lag daran, dass bei dem WebServer eine viel zu lange URL angefordert wurde.
Der Parameter "Code=" war zu lang....

Ja ja... manchmal sollte man einfach manuell die Schritte durchgehen und sehen, ob es funktioniert^^

Wie gesagt frohe Weihnachten an alle :)


Viele Grüße
KingMike

Thema: DLL in andere DLL einbetten
Am im Forum: Rund um die Programmierung

Hallo theYoRecords,

kannst du bitte nochmal genau erläutern, was du tun möchtest? Ich habe da im Moment noch ein paar Fragezeichen vor meinen Augen, was du eigentlich meinst :P.

Vielleicht kann ich dir hir dann weiterhelfen!

Viele Grüße
KingMike

Thema: [erledigt]Verzweiflung mit WebRequest (Protokollfehler)
Am im Forum: Netzwerktechnologien

Hallo Zusammen,

zu allererst möchte ich euch frohe Weihnachten wünschen :). Ich habe folgendes Problem und hoffe, dass ihr mich dabei unterstützen könnt:

Ich versuche über eine API via WebRequest Daten in C# zu verarbeiten. Leider erhalte ich folgende Fehlermeldung:

Der Server hat eine Protokollverletzung ausgeführt.. Section=ResponseStatusLine

Eine Suche im Board ergab, dass in der APP.config folgende Zeilen hinzugefügt werden sollen:


<configuration>
<system.net>
<settings>
<httpWebRequest useUnsafeHeaderParsing="true" />
</settings>
</system.net>
</configuration>

Leider hat das ganze bei mir nicht funktioniert. Folgender Quellcode setzt die Anfrage an den Webserver ab (Zielframework .NET 4.0):

try
            {
                //System.Net.Configuration.HttpWebRequestElement hwre = new System.Net.Configuration.HttpWebRequestElement();
                //hwre.UseUnsafeHeaderParsing = true;
                string url = "http://developer.echonest.com/api/v4/song/identify?api_key=" + apikey + "&code=" + echonestcodegenapicall.firstechonestapidata.code + "&version=3.15";
                //MessageBox.Show(url);
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
                //request.UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10";
                request.UserAgent = "Mozilla";
                request.KeepAlive = false;
                request.Method = "GET";
                request.ProtocolVersion = HttpVersion.Version10;
                HttpWebResponse response = (HttpWebResponse)request.GetResponse();
                StreamReader sr = new StreamReader(response.GetResponseStream());
                string jsonstring = sr.ReadToEnd();
                echonestjson = JsonConvert.DeserializeObject<EchoNestJSON>(jsonstring);
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message);
            }

Ich habe bereits versucht den UserAgent und die Protokollversion von HTML zu ändern. Leider ohne Erfolg :(.
Hat von euch jemand eine Idee, woran das liegen könnte? Vielleicht habe ich hier auch was falsch gemacht? Sitze jetzt bereits 2 Tage vor dem Problem und weis nicht mehr weiter. Ihr seit meine letzte Hoffnung :).

Für den Fall, dass Ihr hierzu noch Fragen habt, dann werde ich selbstverständlich antworten.

Ich freue mich auf eure Antworten und bedanke mich jetzt schon mal.

Viele Grüße