Hallo,
ich möchte eine DLL erzeugen, die zwei oder mehr UserControls enthält, welche die jeweils gleiche "Datenbasis" haben und sich über die ToolBox einfügen lassen.
Gleiche "Datenbasis" soll z.B. heißen:
Eine Control enthält eine TextBox, das andere Control eine ListBox -> Das Control mit der TextBox zeigt immer die Anzahl der Elemente in der ListBox an.
Meine erste Frage wäre nun: Geht das überhaupt?
Ein neues Control ist doch eigentlich immer ein eigenständiges Object, woher soll die Verbindung zwischen den einzelnen Controls kommen?
Normalerweise hätte ich das ganze in einer eigenen Klasse umschlossen, sodass die Controls nur zur Laufzeit hinzugefügt werden können "Class1 Cl = new Class1" -> Cl.Control1 .... / Cl.Control2 ....
Dann kann man sich die Controls aber nicht im Designer hinziehen wie man es gerne hätte.
Zweite Frage wäre nun: Wenn das geht: Wie? 🤔
Nachdem ich einiges ausprobiert habe:
Wenn ich zwei Controls habe und beide auf die selben Daten zugreifen können sollen, muss ich die Datenklasse wohl oder übel statisch setzen.
Damit greifen aber alle Control1s und alle Control2s auf die selben Daten zu.
Ich würde jetzt noch eine Schicht darunter eine statische Klasse einbauen, die eine Liste über die nicht-statischen Datenklassen führt und den Controls über ihren Constructor einen festen Index zuweisen.
Muss ich aber wohl noch einen Finalizer einbauen, um den ganzen Kram mit zu entfernen, wenn das Control entfernt wird =/
Hallo Gimmick.
Wieso erstellst du nicht ein neues UserControl das die Text- und ListBox enthält und dieses Control auf die "Datenbasis" zugreift? Damit kannst du die Daten an dieses Control binden und dann auch mehrfach verwenden.
Grüße
Wieso erstellst du nicht ein neues UserControl das die Text- und ListBox enthält und dieses Control auf die "Datenbasis" zugreift? Damit kannst du die Daten an dieses Control binden und dann auch mehrfach verwenden.
Moin,
die einzelnen Controls können in unterschiedlichen Fenstern/Reitern liegen. Ich muss die schon trennen.
Dann würde ich bei beiden Controls gegen das gleiche VM binden. Musst du doch eh machen, wenn diese auf die gleichen Daten zugreifen sollen.
Dann würde ich bei beiden Controls gegen das gleiche VM binden. Musst du doch eh machen, wenn diese auf die gleichen Daten zugreifen sollen.
Ja, das sollen nur idealer Weise die Controls selbst machen, so dass man Control1 und Control2 beliebig über die Toolbox einbauen kann, die Verknüpfung der Pärchen aber automatisch entsteht.
Ich habs jetzt erstmal so gemacht, dass man den Control über eine Methode schon noch sagen muss zu welchem Datenbestand sie gehören.
Steuerelemente gehören zur View und sind nur dazu da, Daten anzuzeigen. Woher diese kommen, wissen sie nicht. Wenn die Controls dann verwendet werden, bindest du einfach die Daten per DataBinding an die Controls für die Darstellung. Das ist wahrscheinlich das, was du über die Methode gelöst hast, aber das geht einfacher.
Siehe dazu [Artikel] Drei-Schichten-Architektur, und (wenn es um WPF geht): [Artikel] MVVM und DataBinding
Weeks of programming can save you hours of planning