Laden...

Control über Variable ansprechen

Erstellt von DerAndere vor einem Jahr Letzter Beitrag vor einem Jahr 547 Views
D
DerAndere Themenstarter:in
4 Beiträge seit 2022
vor einem Jahr
Control über Variable ansprechen

Guten Tag,

Habe mit WPF einen Kalender erstellt (Siehe Bild im Anhang). Er beinhaltet 12 mal ein Unterformular Monat und jeder Monat enthält 31 mal das Unterformular Tag. Jetzt möchte ich gerne wie in VisualBasic die Elemente ansprechen mit:


DateTime Cache;
Int32 Year;

Year = DateTime.Now.Year;

Usercontrol_Month1.Textblock_MonthName.Text = "Januar";
Usercontrol_Month2.Textblock_MonthName.Text = "Februar";
Usercontrol_Month3.Textblock_MonthName.Text = "März";
Usercontrol_Month4.Textblock_MonthName.Text = "April";
Usercontrol_Month5.Textblock_MonthName.Text = "Mai";
Usercontrol_Month6.Textblock_MonthName.Text = "Juni";
Usercontrol_Month7.Textblock_MonthName.Text = "Juli";
Usercontrol_Month8.Textblock_MonthName.Text = "August";
Usercontrol_Month9.Textblock_MonthName.Text = "September";
Usercontrol_Month10.Textblock_MonthName.Text = "Oktober";
Usercontrol_Month11.Textblock_MonthName.Text = "November";
Usercontrol_Month12.Textblock_MonthName.Text = "Dezember";

for (int i = 1; i <= 12; i++)
{
    for (int j = 1; j <= 31; j++)
    {
        Cache = new DateTime(Year, i, j);
        Controls("Usercontrol_Month" + i).Controls("Usercontrol_Day" + j).Textblock_DayNumber.Text = Cache.ToString("dddd");
    }
}

Ich such jetzt seit Tagen irrgendwas was vergleichsmäßig funktioniert (z.B. FindName hat irrgendwie auch nicht geklappt). Da WindowsForms mir im Funktionsumfang nicht mehr zusagt, wollte ich auf WPF umsteigen und im gleichen Schritt dachte ich mir (habs so wahrgenommen) sollte man auch auf C# umsteigen. Aber das scheint mir hier alles unnötig kompliziert. Ist euer Rat mit VB und WPF oder C# und WPF?

MfG DerAndere

T
2.224 Beiträge seit 2008
vor einem Jahr

In WPF arbeitet man auch nicht im Codebehind wie es bei Winforms gemacht wird.
Dort wird mit DataBinding gearbeitet, hier solltest du dir die Grundlagen und Konzepte von WPF verinnerlichen.
Sonst wirst du ganz schnell von einem Problem zum nächsten Hüpfen, da du gegen die grundlegende Technik von WPF arbeitest.

Zwischen VB und C# liegen auch einige Welten.
C# bzw. eben die einzelnen Techniken wie WPF hat hier ganz unterschiedliche Ansätze, die man eben erstmal lernen muss.
In WPF solltest du dir z.B. mal das Pattern MVC und die Ableger MVP und MVVM anschauen um die Abläufe zu verstehen.
Anleitungen dafür findest du im Netz genügend.

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.

16.834 Beiträge seit 2008
vor einem Jahr

Sowas macht man generell nirgends: [FAQ] Variablennamen zur Laufzeit zusammensetzen / Dynamisches Erzeugen von Controls
Und in WPF schon gar nicht, da nimmt man [Artikel] MVVM und DataBinding. Darauf basiert das gesamte WPF Konzept.

Der Rat WPF und C# ist schon okay.
Wobei viele immer noch WinForms bevorzugen.

PS: [FAQ] DateTime vs. DateTimeOffset und der Umgang mit Zeiten in .NET