myCSharp.de - DIE C# und .NET Community
Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 
 | Suche | FAQ

» Hauptmenü
myCSharp.de
» Startseite
» Forum
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Suche
» Regeln
» Wie poste ich richtig?
» Forum-FAQ

Mitglieder
» Liste / Suche
» Wer ist wo online?

Ressourcen
» openbook: Visual C#
» openbook: OO
» Microsoft Docs

Team
» Kontakt
» Übersicht
» Wir über uns

» myCSharp.de Diskussionsforum
Du befindest Dich hier: Community-Index » Diskussionsforum » Entwicklung » Grundlagen von C# » DLL mit mehreren UserControls anlegen, die ich über die Toolbox anlegen kann
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | Thema zu Favoriten hinzufügen

Antwort erstellen
Zum Ende der Seite springen  

DLL mit mehreren UserControls anlegen, die ich über die Toolbox anlegen kann

 
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
Gimmick
myCSharp.de-Mitglied

Dabei seit: 02.11.2015
Beiträge: 127
Entwicklungsumgebung: Visual Studio 2017


Gimmick ist offline

DLL mit mehreren UserControls anlegen, die ich über die Toolbox anlegen kann

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

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? verwundert
13.06.2019 12:47 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Gimmick
myCSharp.de-Mitglied

Dabei seit: 02.11.2015
Beiträge: 127
Entwicklungsumgebung: Visual Studio 2017

Themenstarter Thema begonnen von Gimmick

Gimmick ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

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 =/
13.06.2019 15:16 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Spook Spook ist männlich
myCSharp.de-Mitglied

Dabei seit: 28.10.2008
Beiträge: 188
Entwicklungsumgebung: VS2015 Professional
Herkunft: Esslingen a.N.


Spook ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

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
13.06.2019 15:53 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Gimmick
myCSharp.de-Mitglied

Dabei seit: 02.11.2015
Beiträge: 127
Entwicklungsumgebung: Visual Studio 2017

Themenstarter Thema begonnen von Gimmick

Gimmick ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Zitat von Spook:
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.
14.06.2019 06:48 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Spook Spook ist männlich
myCSharp.de-Mitglied

Dabei seit: 28.10.2008
Beiträge: 188
Entwicklungsumgebung: VS2015 Professional
Herkunft: Esslingen a.N.


Spook ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

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.
14.06.2019 07:48 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Gimmick
myCSharp.de-Mitglied

Dabei seit: 02.11.2015
Beiträge: 127
Entwicklungsumgebung: Visual Studio 2017

Themenstarter Thema begonnen von Gimmick

Gimmick ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Zitat von Spook:
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.
17.06.2019 08:09 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
MrSparkle MrSparkle ist männlich
myCSharp.de-Team

avatar-2159.gif


Dabei seit: 16.05.2006
Beiträge: 5.161
Herkunft: Leipzig


MrSparkle ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

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
17.06.2019 14:36 Beiträge des Benutzers | zu Buddylist hinzufügen
Baumstruktur | Brettstruktur       | Top 
myCSharp.de | Forum Der Startbeitrag ist älter als ein Monat.
Der letzte Beitrag ist älter als ein Monat.
Antwort erstellen


© Copyright 2003-2019 myCSharp.de-Team | Impressum | Datenschutz | Alle Rechte vorbehalten. | Dieses Portal verwendet zum korrekten Betrieb Cookies. 19.07.2019 22:56