Autor Beitrag
Schmido
Hält's aus hier
Beiträge: 10

Win 7
C# (VS 2010)
BeitragVerfasst: So 28.02.10 18:21 
Hallo Zusammen,

ich habe eine ComboBox, die automatisch aus einem TableAdapter gefüllt wird.
Hierbei ist Display_Member der textuelle Inhalt und Display_Value die ID aus dem Table_Adapter.
Mit dem Button Speichern soll ein entsprechender Eintrag erzeugt werden, wobei die kategorie_id als INT Wert zu übergeben ist.
Ich komme aber an die Checkbox nur als String heran und mit (int) kann man ja keinen String umwandeln.

ausblenden C#-Quelltext
1:
this.cbbKategorie.SelectedItem.ToString()					


Vielen Dank für Tipps und Tricks!
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: So 28.02.10 18:37 
Von welchem Typ sind denn die Items in der comboBox dann? Kenne mich mit dem TableAdapter nicht wirklich aus. Prinzipiell müsste doch sowas möglich sein:

ausblenden C#-Quelltext
1:
((DerTyp) this.cbbKategorie.SelectedItem).ID					


denn die ComboBox hält ja als Items die kompletten Objekte.

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Schmido Threadstarter
Hält's aus hier
Beiträge: 10

Win 7
C# (VS 2010)
BeitragVerfasst: Mo 08.03.10 22:09 
Hallo,

sorry für meine späte Antwort!
Ne leider gibt es keine ID oder das Feld "Kategorie_id" oder ähnliches.
Daher fragte ich ja :)

Jemand noch Tipps oder Tricks?

Grüße
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Mo 08.03.10 22:13 
DisplayMember und DisplayValue verweisen doch aber auf Eigenschaften der Objekte, die in der ComboBox drin sind. Da muss es doch eine Klasse zu geben!

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Schmido Threadstarter
Hält's aus hier
Beiträge: 10

Win 7
C# (VS 2010)
BeitragVerfasst: Mo 08.03.10 22:29 
Also im TableAdapter sollten ja die Typen der Tabelle sein.
kategorie_id ist INT
kategorie_name ist VARCHAR

Das Display Member und Value stammen aus dem BindingSource.
Aber beide habe ich bisher nirgends finden können.
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Di 09.03.10 10:20 
user profile iconSchmido hat folgendes geschrieben Zum zitierten Posting springen:
Das Display Member und Value stammen aus dem BindingSource.
Aber beide habe ich bisher nirgends finden können.

Diese Zuordnungen stehen in der Formular.Designer.cs.

Jürgen
Schmido Threadstarter
Hält's aus hier
Beiträge: 10

Win 7
C# (VS 2010)
BeitragVerfasst: Di 09.03.10 18:52 
Hallo,

super! Darüber sind wir jetzt schonmal weiter:

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
            // 
            // cbbKategorie
            // 
            this.cbbKategorie.DataBindings.Add(new System.Windows.Forms.Binding("SelectedValue"this.kategorieBindingSource, "kategorie_id"true));
            this.cbbKategorie.DataSource = this.kategorieBindingSource;
            this.cbbKategorie.DisplayMember = "kategorie_name";
            this.cbbKategorie.FormattingEnabled = true;
            this.cbbKategorie.Location = new System.Drawing.Point(9148);
            this.cbbKategorie.Name = "cbbKategorie";
            this.cbbKategorie.Size = new System.Drawing.Size(12121);
            this.cbbKategorie.TabIndex = 2;
            this.cbbKategorie.ValueMember = "kategorie_id";
Schmido Threadstarter
Hält's aus hier
Beiträge: 10

Win 7
C# (VS 2010)
BeitragVerfasst: Mi 10.03.10 19:52 
Noch jemand eine Idee, wie ich nun an die kategorie_id, also den value Wert komme?

Danke! Danke Danke!
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Mi 10.03.10 20:09 
Ich hab jetzt mal das Szenario bei mir nachgestellt und im SelectedIndexChanged-Event einfach mal geguckt, von welchem Typ denn das SelectedItem einer solchen ComboBox ist. Das zeigte mir, dass das ein DataRowView ist. Kurz in der Hilfe geguckt: Hat einen Default-Indexer um auf die Spalten zuzugreifen. Bei mir klappt es dann so:
ausblenden Delphi-Prism-Quelltext
1:
2:
3:
4:
5:
  if comboBox1.SelectedItem <> nil then
  begin
    var drv := DataRowView(comboBox1.SelectedItem);
    MessageBox.Show(drv['ID'].ToString);
  end;

(Ist zwar Prism, geht in C# dann aber genauso)

//Edit: Noch schöner kam man's machen, wenn man in die richtige Klasse castet:
ausblenden Delphi-Prism-Quelltext
1:
2:
3:
4:
5:
6:
  if comboBox1.SelectedItem <> nil then
  begin
    var drv := DataRowView(comboBox1.SelectedItem);
    var row := websiteDataSet.CategoryRow(drv.Row);
    MessageBox.Show(row.ID.ToString);
  end;

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".