![]() |
DataBindings an eine TextBox
hallo,
ich erzeuge eine Liste und binde die an eine ComboBox:
Delphi-Quellcode:
leider kommt immer die Fehlermeldung var AL: ArrayList Begin AL:= ArrayList.Create; AL.Add(MyClass.Create(1,'Item1'); AL.Add(MyClass.Create(2,'item2'); AL.Add(MyClass.Create(3,'Item3'); ComboBox1.DataSource:= AL; // soweit ist das klar und funktioniert // jetzt will ich den zweiten Property in einer TextBox editieren TextBox1.DataBindings.Add('Text', AL, 'Item'); end; Zitat:
|
Re: DataBindings an eine TextBox
Zitat:
Den kannst du schlecht daran binden. Ich halte es sowieso etwas ungeschickt Controls an Controls zu binden wenn du die Datenquelle selbst nehmen könntest. Pseudo code:
Delphi-Quellcode:
type MyClass = public class
public property SomeProperty : string; constructor(someProperty : string); end;
Delphi-Quellcode:
Möglich, aber unflexibel und hässlich, wäre auch:
comboBox.DataSource := list;
textBox.DataBindings.Add('Text', list, 'SomeProperty'); // ab IEnumerable, kannst du direkt gegen Properties // des Ergebnisses von Enumerator.Current binden
Delphi-Quellcode:
textBox.DataBindings.Add('Text', comboBox, 'SelectedItem');
|
Re: DataBindings an eine TextBox
aha,
da haben wir doch den richtigen erwischt :mrgreen: ich habe hier ![]() also ich greife schon über den Property der Klasse darauf zu. wollte hier bloss nicht meine Fantasienamen veröffentlichen :mrgreen: raik wobei die hässliche und unflexible Variante klappt |
Re: DataBindings an eine TextBox
So,
ich bin noch nicht wirklich weiter :wall: wenn ich eine Liste nach folgendem Schema realisiere
Delphi-Quellcode:
kann ich mit List.Add(TextBox2); List.Add(TextBox3); List.Add(TextBox4); List.Add(TextBox5); TextBox1.DataBindings.Add('Text', List, 'Text');
Delphi-Quellcode:
durch die Liste navigieren und ich sehe jeweils den Text in der TextBox 1.
TextBox1.BindingsContext[List].Position;
wenn ich aber eine neue Klasse mache:
Delphi-Quellcode:
und diese dann in die Liste einfüge nach folgendem Muster
unit Class1;
interface type TMyClass = class private { Private-Deklarationen ;} fText: String; public constructor Create(Text:String); property Text: String read fText write fText; end; implementation constructor TMyClass.Create(text: String); begin inherited Create; ftext := Text; // TODO: Hier die Konstruktorlogik einfügen end; end.
Delphi-Quellcode:
kommt immer noch die Fehlermeldung von oben.list.Add(TMyClass.Create('eins'); //...usw. wo liegt denn mein Fehler? raik |
Re: DataBindings an eine TextBox
Kleiner Tip: Wechsel die Sprache solange es noch geht und schaue mal im
![]() Könnte dir mehr Antworten geben. Ich hatte dir hier eher "aus Versehen" geantwortet. |
Re: DataBindings an eine TextBox
hallo Robert,
heisst das, es geht in Delphi.net so nicht, oder? denn nach der gleichen Methode habe ich es ja mit C# hingekriegt. raik |
Re: DataBindings an eine TextBox
Das geht schon, aber hätte ich dir nicht aus Versehen (eher aus altem Reflex) geantwortet hättest du hier noch keine Antwort bekommen.
Weitere kommen von mir hier nicht mehr... ;) |
Re: DataBindings an eine TextBox
Zitat:
raik |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:58 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz