Autor |
Beitrag |
c#ler
      
Beiträge: 176
Erhaltene Danke: 1
Win7 64Bit
C#, VBA, VS2013 Ultimate
|
Verfasst: Mo 20.06.11 14:31
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
      
Beiträge: 561
Erhaltene Danke: 137
|
Verfasst: 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.
Für diesen Beitrag haben gedankt: c#ler
|
|
c#ler 
      
Beiträge: 176
Erhaltene Danke: 1
Win7 64Bit
C#, VBA, VS2013 Ultimate
|
Verfasst: 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
      
Beiträge: 561
Erhaltene Danke: 137
|
Verfasst: 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 
      
Beiträge: 176
Erhaltene Danke: 1
Win7 64Bit
C#, VBA, VS2013 Ultimate
|
Verfasst: 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?
|
|
|