Laden...

Datenbindung an ListBox

Erstellt von sebastian264 vor 10 Jahren Letzter Beitrag vor 10 Jahren 857 Views
S
sebastian264 Themenstarter:in
3 Beiträge seit 2014
vor 10 Jahren
Datenbindung an ListBox

Hallo, ich benötige mal eure Hilfe.

Folgendes Problem:
Wie im Screenshot zu sehen habe ich in meiner Bibliothek 3 Elemente. Von denen kann ich beliebig viele zur Laufzeit in das Canvas verschieben. Jedes dieser Elemente hat Eigenschaften wie ID, Name, Position, Größe usw.
Diese Eigenschaften kann ich mir anzeigen lassen wenn ich mit der rechten Maustaste dann auf das jeweilige Element klicke. Das funktioniert tadellos.
Nun möchte ich aber mit einem Doppelklick ein neues Fenster öffnen in dem in einer Liste alle Elemente enthalten sind, die sich im Canvas befinden. D.h. sind es 5 Elemente so soll die Liste diese 5 Elemente erhalten. Wähle ich dann in der Liste ein Element aus, so sollen mir dann alle Eigenschaften angezeigt werden, die dieses Element hat. Später möchte ich diese dann noch ändern können. Ich stell mir also einmal eine ListBox vor mit all den Elementen und dann noch TextBoxen, die die einzelnen Eigenschaften anzeigen. Nur wie mache ich das, bzw wie bekomme ich die Elemente in die Liste bzw die einzelnen Eigenschaften in die Textboxen. Da ich noch Anfänger bin und wenig Erfahrung habe, vor allem mit Datenbindung, tu ich mir doch etwas schwer, vllt könnt ihr mir helfen.

B
357 Beiträge seit 2010
vor 10 Jahren

Du solltest doch eigentlich irgendwo eine Collection mit deinen bereits platzierten Objekten haben? Diese an eine Listbox zu binden ist jetzt doch nicht soo schwer, oder? 😉

S
sebastian264 Themenstarter:in
3 Beiträge seit 2014
vor 10 Jahren

Also die DataItems werden in die MyDataItemList geschrieben, diese habe ich vorher so erstellt:

private DataItemCollection MyDataItemList = new DataItemCollection();

Also binde ich dann einfach die MyDataItemList an oder wie?

Tut mir leid aber ich bin wirklich Anfänger und lerne das alles ehr so "nebenbei", deswegen fällt mir da einiges doch etwas schwerer...

Kannst du mir ein Ansatz geben, wie ich das dann anbinde?

B
357 Beiträge seit 2010
vor 10 Jahren

Hier wird z.B. das Nutzen einer ListBox erläutert. Da du die Collection ja schon hast, sollte der Rest schnell umgesetzt sein:

MSDN

S
sebastian264 Themenstarter:in
3 Beiträge seit 2014
vor 10 Jahren

Danke. Um ehrlich zu sein, weiß ich trotzdem nicht wie ich es umsetzen muss. Vllt fehlen mir einfach noch entscheidende Grundlagen...

5.299 Beiträge seit 2008
vor 10 Jahren

ich frage mich, ob du mit deinem Canvas auch dem MVVM-Pattern folgst. Weil eiglich ists kein Problem, einer Listbox als ItemsPanel ein Canvas anzudrehen, und dann hat mans schon.
Dieselbe DataSource kannst du dann der Canvas-Listbox andrehen, aber auch gleichzeitig einer normalen Listbox.
und - Tadaa! - perfekt synchronisiert.

Der Trick mit dem Canvas als Itemspanel ist hier gezeigt:
http://www.vb-paradise.de/index.php/Thread/102270-Kein-Pong-Erstaunliches-mit-ItemsControl-Itemspanel/
Viewmodel-Code ist allerdings vb.net, aber die Itemspanel-Geschichte ist ja Xaml.

Der frühe Apfel fängt den Wurm.