Autor Beitrag
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 04.04.04 15:28 
Hallo!

Zuerst die Situation:
vorweg: es ist eine WinForms-Anwendung.

Ich beschäftige mich das erste Mal mit der Databinding-Eigenschaft der Listbox. Ich habe ein Dataset (DataSet1) in dem ich eine Tabelle (Table1) habe, die zwei Spalten hat. "Name" und "Text", beide vom Typ String. "Name" ist dabei der Schlüssel der Tabelle und eindeutig.

Ich habe nun eine Listbox (ListBox1) und eine Textbox (Textbox1). Die Listbox ist über die Eigenschaft DataSource mit Table1 verbunden. Die Eigenschaften "DisplayMember" und "ValueMember" stehen beide auf "Name". Damit war ich zumindest in soweit erfolgreich, dass die Listbox nun die Spalte "Name" von Table1 anzeigt.

Die Textbox habe ich über Databindings->Text mit der Spalte "Text" der Tabelle verknüpft.

Die Frage:
Ich möchte aus der Tabelle die Zeile löschen, die in der Listbox markiert ist. Ich habe das bisher so versucht:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
var myRow : Datarow;
    theName : String;
begin
  if ListBox1.SelectedIndex >= 0 then
  begin
    theName := ListBox1.SelectedItem.ToString;
    myRow := modTexts.Rows.Find(theName);
    modTexts.Rows.Remove(myRow);

  end;
end;

Dies funktioniert jedoch nicht. Grund: "theName" enthält nicht den Namen der Zeile, wie ich es eigentlich erwartet habe, sondern besitzt den Wert "System.Data.DataRowView". Folglich wird myRow nicht gefunden und kann auch nicht gelöscht werden.

Wie kann ich also eine Zeile aus der Tabelle löschen, wenn sie in der Listbox markiert ist?

MfG
Peter

P.S.: Ist garantiert ganz einfach, aber ich bin heute irgendwie nicht gut drauf ... :-(

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