Entwickler-Ecke
WinForms - Textzuweisung zu einem Index
c#ler - Mo 20.06.11 14:31
Titel: Textzuweisung zu einem Index
Folgendes,
Ich habe eine advancedlist(resco) und eine Textbox.
Ich habe verschiedene Rowtemplates, welche dann den Textinhalt für jeweils eine Zeile definieren.
C#-Quelltext
1:
| advancedList_main.DataRows.Add(new DataRow(0, 0, -1, -1, new string[] { Text = ("Maximal 85 km/h") })); |
Soweit funktioniert alles.
Nun möchte ich zu jedem Rowtemplate einen Text in der Textbox haben.
- z.b. im Rowtemplate steht "Schuhe", dann soll bei der Auswahl dieses Templates der Textboxinhalt "38 - 45"
anzeigen
- sobald ich dann ein Rowtemplate "Hemd" auswähle, soll der Textboxinhalt "s - XXL verfügbar" anzeigen. usw
1. theoretischer Ansatz:
Jedes Rowtemplate hat einen festen Index, nun muss ich auf jeden Index einen Textdefinieren.
Nur habe ich dazu leider keinen praktischen Ansatz und das Thema ist zu spezifisch um etwas sinnvolles dazu im Internet zu finden.
Darum bitte ich euch um einen praktischen Ansatz, auf dem Ich aufbauen kann.
Ich bin dankbar für jede sinnvolle Antwort.
Vielen Dank
Trashkid2000 - Mo 20.06.11 16:13
Hi,
und wenn Du alle Templates in ein
Dictionary<string, DataRow> packst?
Also sowas
C#-Quelltext
1: 2: 3: 4: 5:
| Dictionary<string, DataRow> templates = new Dictionary<string, DataRow>() { { "Schuhe", new DataRow(0, 0, -1, -1, new string[] { Text = ("38 - 45") }) }, { "Hemd", new DataRow(0, 0, -1, -1, new string[] { Text = ("s - XXL verfügbar") }) } }; |
Dann kannst Du per Index und über den Key zugreifen.
c#ler - Di 21.06.11 12:54
Das ist meine Form "Liste"
in der werden die Rows ins Dictionary gepackt.
Alles schön und gut. Hilft mir auch weiter, jedoch hab ich jetzt das Problem, dass ich das Dictionary nicht in der Form aufrufen kann. Keine Ahnung warum? :(
//
//Liste.cs
//
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| namespace Fahrerbuch { public partial class Form1 : Form { public void Listenklasse() { Dictionary<string, DataRow> RTL1 = new Dictionary<string, DataRow>() { { "Schuhe", new DataRow(0, 0, -1, -1, new string[] { Text = ("38 - 45") }) }, { "Hemd", new DataRow(0, 0, -1, -1, new string[] { Text = ("s - XXL verfügbar") }) } }; } } } |
//
//Form1
//
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| namespace Fahrerbuch { public partial class Form1 : Form { public Form1() { InitializeComponent(); Listenklasse(); } } } |
ist natürlich alles etwas abgekürzt.
Kann mir bitte jemand verraten, was ich falsch mache?
Trashkid2000 - Di 21.06.11 17:41
Hallo,
naja, Du deklarierst (und initialisierst) das Dictionary innerhalb der Methode "Listenklasse()", und somit ist es auch nur innerhalb der Methode verfügbar.
Den Namen der Methode finde ich ziemlich abgefahren. Denn es ist eine Methode, und keine Klasse, und ausserdem ist der Name in Bezug darauf, was die Methode macht, nicht aussagekräftig.
Nenne sie mal besser "InitializeTemplates()" oder so.
Dann musst Du bloß noch das Dictionary als globale Variable deklarieren, und in der Methode initalisieren.
c#ler - Mi 22.06.11 09:22
Trashkid2000 hat folgendes geschrieben : |
Den Namen der Methode finde ich ziemlich abgefahren. Denn es ist eine Methode, und keine Klasse, und ausserdem ist der Name in Bezug darauf, was die Methode macht, nicht aussagekräftig.
|
War ein flüchtigkeitsfehler, copy-past schief gelaufen..
Habe es in der Zwischenzeit geändert.
Außerdem packe ich nun die Rows einfach in einen Datatable, sodass ich nurnoch diesen aufrufen muss.
Zum Thema Index:
kann ich per index in einem Datatable auf die einzelnen Rows zugreifen?
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!