Guten Morgen,
vielen Dank euch beiden schon mal für eure Anmerkungen.
Ich habe gestern Abend nochmal alles überflogen und versucht nachzuvollziehen und ihr kennt mich mittlerweile bestimmt gut genug, dass ich es nicht so einfach stehen lassen kann und mal nachhacken muss.
@Ralf
du hast Recht, dass hinter
Global.GetCurrentFunctionName() ein StackTrace steht.
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| public static string GetCurrentFunctionName() { StackTrace stackTrace = new StackTrace(); StackFrame stackFrame = stackTrace.GetFrame(1); MethodBase methodBase = stackFrame.GetMethod();
return methodBase.ToString(); } |
Das hatte ich mir so ergoogelt und da es gemacht hatte was ich wollte nicht weiter hinter fragt. Wenn du aber sagst, dass es "böse" dann werde ich das entsprechend anpassen auf deinen Vorschlag.
Ich habe mal versucht
LoadData auszuführen, wenn der Setter verändert wird.
Meintet ihr das z.B.: so?:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| public long ArticleId { get { return ArticleId; } set { ArticleId = value; LoadData(); } } |
Da hätte ich jetzt das Problem, dass beim setzen des Setters das Programm abstürzt und nicht mehr reagiert.
Zitat: |
b.) Sich fragen ob ein UserControl die Datenquelle kennen sollte. Ich würde eher auf der Form das Laden der Daten in UpdateReadScan erledigen und die Daten dann ins UserControl schieben. Ist aber vermutlich eher eine philosophisches Ding. Für mich fühlt sich das falsch an das ein UserControl so ~viel~ kann.
|
Habe da gestern Abend drüber nachgedacht und kam aber zu keinem Ergebnis wie das gehen sollte.
Wenn ich die BindingSource statt in dem UserControl in der Form habe und dort fülle, müsste ich dies zum UserControl schieben.
Beispielsweise ca so vermute ich
userControl.Property = BindingSource.DataSource as Klasse
Wie kann ich dann einzelnen Steuerelementen Sagen, welche Werte sie anzeigen sollen?! Das hatte ich bisher ja immer über die BindingSource und den Eigenschaften des Steuerelements getan?!
Zum Guten Schluss hätte ich noch was mit der Kommunikation zwischen 2 Forms:
Im Moment hatte ich es ja mehr oder weniger "abgetippt". Da ich es aber gern verstehen möchte um es auch wieder aus dem Kopf zu bauen, habe ich mir gestern nochmal alles angeschaut.
Das meiste versteh ich auch, mir fehlt nur folgender Teil "schwer"
C#-Quelltext
1: 2: 3: 4: 5: 6: 7:
| protected virtual void OnReadScan(TextEventArgs e) { EventHandler<TextEventArgs> ev = ReadScan; if (ev != null) ev(this, e); } |
Ich habe hier doch eine Methode, die als Parameter die Klasse übergeben bekommt, die als Event deklariert ist.
Innerhalb dieser Methode erstelle ich eine neue Instanz der Klasse und "binde" sie an das Event
Wenn ich diese
ev Instanz fülle versteh ich das
this nicht.
Gruß
Daniel
Edit:
Es hängt sich auf auf wenn ich LoadData umbaue zu
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18:
| public long ArticleId { get { return ArticleId; } set { ArticleId = value; ShowArticleID(ArticleId); } }
private void ShowArticleID(long articleId) { bsArticleDetails.DataSource = ArticleMethods.GetOktabinerDetails(articleId); lblNaechsterSchritt.Text = ArticleMethods.GetStringNextProcessStep(articleId, ArticleMethods.GetLongActuellSchritt(articleId)); } |