Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Portal
  • |
  • Mitglieder
Beiträge von Gimmick
Thema: Welche UI-Technologie von MS einsetzen???
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Also wäre es vielleicht so gemeint, dass sich HTML-Technologien verbreiten, weil viel in Richtung Multiplatform geht, aber reine Desktop-Anwendungen betrifft das nicht, sie werden nur weiter zurückgehen.

Gibt es überhaupt etwas, das mit MAUI-Blazor gar nicht geht? Dann würde sich doch eigentlich nur die Frage nach den Plattformen stellen. Wenn kein Interesse an Mobile und Web besteht, spricht nichts gegen WinUI (denke ich? :D), ansonsten landet man zwangsweise bei Maui-Blazor

Thema: Welche UI-Technologie von MS einsetzen???
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Ein weiteres Jahr ist verstrichen und ich für meinen Teil bin bzgl. der Frage nach "DEM" Framework für den Windows-Desktop immer noch nicht schlauer geworden. Weil es thematisch genau passt und ich mich auch auf Abts Blogeintrag beziehe, mache ich mal keinen neuen Thread auf.

Insbesondere habe ich mich bei dieser Vermutung ein wenig gewundert: "Für Desktop-Apps werden sich vermutlich HTML-Technologien wie Blazor durchsetzen, wobei mit Windows 11 auch WinUI3 viele Anwendungsfälle finden werden."

Welchen Vorteil hätte Blazor denn für eine reine Desktop-Anwendung gegenüber WinUI? Für mich klingt die Konstruktion einer Desktop-Anwendung (mit freiem Dateizugriff, usw) mit Blazor immer furchtbar kompliziert im Vergleich zu einem 'klassischen' Desktop-Programm. Zudem integriert sich die Oberfläche doch auch nicht so einfach in die System-Optik, oder?
Was wären denn Punkte bei denen man sage würde "mach das mal lieber mit Blazor/WinUI"? Oder geht die Überlegung eher in die Richtung: Kleine Programme WinUI, umfangreiche UIs eher mit Blazor? Ähnlich wie bei Winforms und Wpf quasi.

Thema: PDF auf 2 verschiedenen Monitoren öffnen
Am im Forum: Grundlagen von C#

Zitat von Palladin007
Befrag eine Suchmaschine deiner Wahl nach "c# pdf viewer", ich kenne nichts.

WebView2 (oder ein anderes Browser Control) sollte das doch können.

Thema: Deserialisierung mit XmlSerializer erzeugt doppelte Einträge
Am im Forum: GUI: WPF und XAML

Zitat von Ammojack
Danke für die Hilfe
Denn eigentlich ist das doch eine Zuweisung, oder nicht?

Weise der spielsettings den Inhalt aus der Textdatei zu, und nicht addiere.

Kann er aber nicht, weil der setter private ist.
Bei nicht überschreibbaren Properties wird wohl standardmäßig nach einer Add-Funktion gesucht, um die Werte zu setzen.

Thema: Wie Diagramme in WPF erstellen
Am im Forum: Grafik und Sound

Es ist ja nicht so, als gäbe es da nichts.
Häufig verwendet werden Oxyplot und LiveCharts2. Die Anwendungsfälle sind aber ein wenig verschieden und Oxyplot wird wohl gerade ein wenig umgebaut, weshalb einige Funktionen als "Depracted" markiert sind, obwohl die Alternative noch nicht vorhanden ist ^^. LiveCharts2 als Nachfolger von Livecharts ist noch Beta, allerdings sehr weit fortgeschritten.

Beides mit MIT-Lizenz und auf Github einsehbar.

@Abt
Was wäre denn die "togo-Lösung" in der Web-Welt?

Thema: Lineare Gleichungen mit n-Variablen lösen lassen
Am im Forum: Rund um die Programmierung

Lineare Optimierung unter Zwangsbedingungen -> Simplex Verfahren.
Habe jetzt keine konkrete Implementierung parat, aber das gibt es bestimmt schon zu Hauf.

Thema: Leserliche Schriftfarbe für Hintergrund
Am im Forum: Grafik und Sound

Schau mal hier:
https://www.nbdtech.com/Blog/archive/2008/04/27/Calculating-the-Perceived-Brightness-of-a-Color.aspx

Thema: "Bulk Update" MS SQL
Am im Forum: Datentechnologien

Zitat von T-Virus
Ich vermute, dass allein durch das Kapseln der Abfragen zu einer Transaktion die Zeiten nochmal fallen dürften.
Hat sich bei Massenupdates bei einigen Tausend Datensätzen, die per PK geupdatet wurde, enorm bemerkbar gemacht.
Auc spart man eben viel Ping/Pong zwischen Client und Server aus.

T-Virus

So wurde daraus jetzt eine Mischlösung mit einer Teilzusammenfassung. Das hat die Zeit auf unter eine Minute gedrückt - das ist allerdings immernoch unangenehm, wenn man davor sitzt und wartet und der resultierende Query ist etwas "unübersichtlich"

Bin wirklich kein Netzwerkadmin und meine Versuche zu verstehen, warum das da so lahm ist, haben nichts ergeben :D.
Habe nur wiederholt festgestellt, dass ein Update eines Feldes in einem Datensatz > 100 ms dauert - in einem Netzwerk mit eigenem Server (also Hardware, nicht virtuell) und nicht über das Internet oder so. Eventuell so eine Security/Viren Scanner Geschichte...? Ich hab da keinen Plan von.

Thema: "Bulk Update" MS SQL
Am im Forum: Datentechnologien

Also entweder Prinzip-Hoffnung "wird schon so bleiben" und das so reinknüllen, wie ich das geschrieben hatte, damit leben, dass es langsam ist oder komplett neu aufziehen und dann eben 'richtig' machen.

Da wird es wohl auf "es bleibt alles so wie es ist" hinauslaufen.

Thema: "Bulk Update" MS SQL
Am im Forum: Datentechnologien

@Abt
Da sich die Felder ändern können und die Dateien dann editiert werden, geht das dann so wohl nicht.

@T-Virus
Ja, ich gehe davon aus, dass es NICHT die Verarbeitung auf dem Server ist und eine Zusammenfassung helfen wird. Ganz grob überschlagen dauert jeder Query 150-200+ ms schonmal rein für die Anfrage an sich. Mündete dann in z.B. bei einem Vorgang pro Feld pro Datensatz in 200 ms * 100 * 20 > 6 min. Ich gehe davon aus, dass man das netzwerktechnisch schneller machen kann und ich gehe davon aus, dass das nicht passieren wird xD


Es ist alles indexed.

Key/Value Struktur klingt passend.
Die Rahmenbedingungen können nicht geändert werden. Es ist SQL, es gibt Einträge, die sich über tausende Zeilen wiederholen und eigentlich in eine eigene Tabelle gehören, was aber nicht geht, weil es wohl irgendein Programm gibt, das für irgendwas Daten ausliest und das nur aus einer bestimmten Tabelle kann... [Entwickler in Rente oder was weiß ich xD]
Also egal wie murksig das ist - ich kann es nicht ändern

Ich habe jetzt schon mal ein paar Dinge rausgedröselt und das restliche Problem reduziert sich SQL-technisch schlicht auf:

Pseudo:



foreach(Item item in Items)
{

  //item.Data = Dictionary<string, string>
   [sql]
         Update table SET Feld1 = item.Data[V], Feld2 =  item.Data[W], Feld3= item.Data[X], Feld4 = item.Data[Y], Feld5= item.Data[Z] WHERE [Index] =  item.index
   [/sql]
}

Das möchte ich aber nicht, weil auch das dauern kann.

Daher war die Idee:
Alles in eine Temp-Tabelle mit Index, V, W, X, Y, Z bulken -> über den index joinen zum updaten -> tabelle löschen.



Es ist ja grundsätzlich richtig die reine Existenz dieser Dateien in Frage zu stellen - hilft aber nicht

Thema: "Bulk Update" MS SQL
Am im Forum: Datentechnologien

Zitat von Abt
Jeder ORM braucht ein Mapping. Du brauchst also Modelle, die die Datenbankstruktur darstellen. Aber jede relationale Datenbank kann überhaupt erst benutzt werden, wenn es ein Schema gibt.
Ob die Modelle aus Database First oder Code First (Recommended) kommen - egal.

Wie macht man das denn, wenn man die Felder in der DB vorher nicht kennt? Dachte die Objekte spiegeln mit ihren Properties immer die vorhandenen Spalten wieder - oder eben umgekehrt. Dynamic Object, Dictionary?
Abgesehen schreibt man doch mit einem ORM auch per Object, oder? Wenn das super-lahm ist, würde es zwar richtiger werden, aber nicht schneller.
Zitat
Hab sowas regelmäßig bei Maschinenbauern.
Wir machen das eigentlich so, dass wir die Daten alle lokal aufarbeiten - zum Beispiel durch Transformationen in XML-Dateien.
Und diese XML-Daten werden dann als Quelle für den (echten) Bulk verwendet.

Ja genau, in die Richtung geht das. Und weil ich schon mal per Bulk sowas in der Art für neue Datensätze gemacht hatte, dachte ich, dass es vielleicht besser wäre möglichst intern zu updaten und die Daten erst mal in den Server zu schieben.
Wenn ich so drüber nachdenke, wäre es vielleicht aber besser diese Dateien in eine Struktur zu bringen -> das in der Datenbank abzubilden und dann nur über Verweise zu schreiben...? Könnten komplizierte Queries werden, aber ich glaube das müsste gehen. :|
Zitat
Die Datenmenge entscheidet dann, ob man echtes Bulk verwendet oder halt ein ORM.
Wenn die Op jetzt nicht gerade mehrere Tage dauert, dann brauch ich keine Stunden in nen Bulk investieren (schreiben, testen.. = mehr Aufwand als bei EF), das mit EF in Minuten umgesetzt ist.

Ne Tage dauert das nicht, passiert aber ständig. Mittlerweile wartet da jemand schon mal Minuten mitten während der Arbeit (hab ich schon gesagt, dass da alles unfassbar langsam ist? :D). Es wäre schön die Zeit zumindest auf Sekunden zu drücken. Der Server verarbeitet die Anfragen zwar schnell, aber von Senden bis Bestätigung empfangen vergeht einiges, daher tendiere ich dazu die Anzahl der Anfragen zu reduzieren aber den Gehalt aufzublasen. Gemessen habe ich die reine Verarbeitungszeit über DateTime-Abfragen am Anfang und Ende des Queries.

Thema: "Bulk Update" MS SQL
Am im Forum: Datentechnologien

Das konkrete Problem ist folgendes:

Es gibt ein paar ganz faszinierende Ini-Dateien, aus denen sich Daten, Bedingungen und Felder für das Update ergeben.
Ganz zu Begin wurde das einzeln aufgedröselt und dann pro Feld und Datensatz geschrieben. Wenn die Datenmenge dann steigt eskaliert das natürlich schnell und plötzlich ist man im Minutenbereich...

Ein paar Dinge sind direkt auf Feldinhalte zurückzuführen und können per WHERE in einem Rutsch abgehandelt werden, aber das sind auch erstellte codes bei, die für jeden Index anders sind...

Daher würde ich das gerne komplett umbauen.

Kann man das Entity Framework auch benutzen, wenn man das erst zur Laufzeit generieren kann? Dachte immer man muss bei "Database first" das Model zumindest bei der Programmerstellung erzeugen.

Thema: "Bulk Update" MS SQL
Am im Forum: Datentechnologien

Moin,

ich suche eine für uns sinnvolle Variante zum Massen-Updaten von SQL-Daten, das heißt zügig und am besten ohne Stored Procedure. Abgesehen von ein paar notwendigen Feldern, sind die Spalten im Voraus unbekannt.

Mein bisheriger Favorit wäre:
1. Temporäre Tabelle anlegen
2. Datensätze in Datatable laden
3. Werte lokal ändern
4. Bulkcopy in temporäre Tabelle
5. Wenn alles in temp. Tabelle geschrieben -> Update über Join
6. Drop temp. Tabelle

Ist das sinnvoll / macht man das so, oder gibt es andere, bessere Möglichkeiten?

Thema: int-Werte innerhalb einer Liste vergleichen
Am im Forum: Grundlagen von C#

Vergleich einfach für den Fall, dass die Liste schon eine Zahl enthält, die neue Zahl, mit der letzten Zahl der Liste.

Abgesehen davon ist in dem Schnipsel X innerhalb der Schleife immer gleich, soll das so?

Thema: WPF Elemente mit einem Click Event generieren
Am im Forum: GUI: WPF und XAML

Wenn die in irgendeiner Weise (horizontal, vertikal, ...) aufgelistet werden sollen, kannst Du z.B. das Control "ItemsControl" (einzelne Items kann man nicht auswählen) oder eine ListBox (einzelne Items kann man auswählen) ansehen.

Dafür schaust Du Dir dann wiederum den Hinweis auf das Databinding an und bindest die ItemsSource der Liste an ein passendes Collection Objekt (List, ObservableCollection,..) und verwendest als Template für die Darstellung innerhalb des Listen-Controls eine ComboBox.

Am Ende fügst Du also keine ComboBoxen in das GUI ein, sondern Du fügst Objekte in deine Liste ein und das Control stellt für jedes Objekt eine ComboBox dar. Wie Du dann die ComboBoxen befüllst, hängt u.A. davon ab, ob sich die Inhalte unterscheiden.

Da gibt es auch bei MS auf den Seiten der Controls Beispiele für.

Thema: WPF Elemente mit einem Click Event generieren
Am im Forum: GUI: WPF und XAML

Wozu und in welchem Kontext willst Du das denn machen?
Sollen mehrere ComboBoxen erscheinen (Liste), wenn man öfter Klickt, oder ist das eher so eine an/aus-Sache, bei der es vielleicht auch einfach reicht die ComboBox ein/auszublenden?

Thema: Externer Prozess Rückmeldung in Gui
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Das Warten auf den Prozess blockiert den GUI Thread, daher der Verweis auf die FAQ. Du musst, wie in der FAQ beschrieben, das Starten und Warten auf das Ende des Prozesses in einen Task auslagern und die Ausgabe des Events dann über den GUI-Thread ausgeben.

Und beachten, dass der User den Prozess wahrscheinlich nicht mehrfach starten können soll.

Thema: JSON auslesen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Wenn du keine passende Klasse hast, mit System.Text.Json kann man meine ich in dynamic deserialisieren.


      dynamic obj = System.Text.Json.JsonSerializer.Deserialize<dynamic>("deinjsontext");

System.Text.Json ist von MS, gibt's im nuget.

Thema: Schnelles Durchlaufen von Dateipfaden
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Nach den weiteren Änderungen ist das wahrscheinlich schon schnell genug und ich weiß auch nicht, das was ich mir dachte noch was bringt und es ist vielleicht etwas kompliziert gedacht, aber nichtsdestotrotz :D...

Wenn die Ordner alle nummeriert sind, gibt Directory.EnumerateFiles() immer die gleiche Reihenfolge zurück und man sieht direkt am Pfad, ob beim ersten oder zwischen n und n+1 Einträge fehlen. Dann würde ein Durchlauf reichen und das Array muss nicht komplett in den Speicher.

Setzt aber vorraus, dass man genau weiß, was kommen sollte .

Thema: Schnelles Durchlaufen von Dateipfaden
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Zitat von BerndFfm

Habe gerade ein paar Test gemacht : File.Exist() und QuickIO.FileExist sind ähnlich schnell. Einlesen in string[] oder List<string> und dann Contains() ist 6 Mal langsamer.
Einlesen in ein Dictionary und dann ContainsKey() ist genauso schnell wie File.Exists.
Bei über 20 Millionen Einträgen reicht der Hauptspeicher aber nicht mehr.

Die Datei findet man so : e:\osm\{z}\{x}\{y}.png

Ich frag mal ganz dumm, weil ich die Sache nicht ganz verstanden habe:
Warum werden die Dateien alle abgefragt? Wegen des Kopierens für den Offline-Zugriff?
Die unterste Ordner-Schicht "y" hat 20 millionen Einträge? Oder alles zusammen? Wenn nur alles zusammen, warum dann alles im Speicher halten?

Wenn das fortlaufend und eindeutig nummeriert ist und es "nur" darum geht festzustellen, was fehlt, hilft es dann nicht eventuell, erst mal zu schauen, ob etwas fehlt und wenn ja in welchem Bereich? Dann könnte man sich Contains() sparen und die Anzahl der Abfragen möglichweise deutlich reduzieren.

Oder evtl., wenn eher viele Dateien fehlen und die dann sowieso runtergeladen werden müssen, EnumerateFiles nutzen und bei jedem Eintrag prüfen, ob zum vorherigen eine Lücke besteht (und wie groß die ist), die fehlenden Bezeichnungen in einem sinnvoll begrenzten Puffer halten und gleichzeitig zur Suche runterladen - und loggen bei welcher Datei man war, damit man nicht wieder von vorne anfängt.

Wäre halt blöd, wenn man wegen einer einzigen Datei x Stunden Pfade abfragt, oder man die Sache vielleicht nur eine begrenzte Zeit laufen lassen möchte und dann feststellt, dass man jedes mal die meiste Zeit mit Suchen und nicht mit runterladen/kopieren verbringt.

Und wenn es mehrere SSDs sind, könnte man das nicht evtl. auch gleichzeitig für jede Platte machen?

Thema: System.Drawing.Font Fontfamilies wie im Forms-FontDialog zusammenfassen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen


Habe mal nachgeschaut... ist mir zuviel Win32 zum "mal eben nachvollziehen". Werde mich an dem WPF-Beispiel orientieren und den Drawing.Font-Dialog so lassen ^^.

Thema: System.Drawing.Font Fontfamilies wie im Forms-FontDialog zusammenfassen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Ich rede vom ganz normalen Windows-Forms FontDialog in .NET Framework 4.8/.NET6 Win 10.
In der Tat ist die Darstellung in unterschiedlichen MS-Programmen ebenfalls unterschiedlich. In den Optionen von Windows wird dann von "Metadaten" gesprochen ... so eine richtige Einheitlichkeit scheint es nicht zu geben.

Wäre natürlich schön diese eigene Logik zu kennen Weniger wegen der Gruppierung, sondern mehr, weil .IsStyleAvailable(style) true zurück gibt, obwohl sich bei Auswahl des Styles gar nichts ändert. Da werden die Styles dann wohl unterstützt, aber nicht verwendet.

Ich vermute ein wenig, dass System.Drawing.Font nicht wie System.Windows.Font zwischen Font-Weight und Font-Style unterscheidet und eben alles über die paar enum-typen für den Style abfackelt.

Habe mir mal das WPF Beispiel von MS angesehen, mit Windows.Media.Font scheinen sich diese Probleme in Luft auf zu lösen.

Tendiere nun doch eher dazu es für Drawing.Font einfach zu halten und den Dialog für Media.Font bei Zeiten nochmal zu ergänzen :D.

Thema: System.Drawing.Font Fontfamilies wie im Forms-FontDialog zusammenfassen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Moin,

ich bastel mir gerade diverse Dialoge mit Zusatzfunktionen nach, unter anderem auch den Forms FontDialog.
Dabei ist mir nun aufgefallen, dass in dem original Dialog einige FontFamilies zusammengefasst und dann über den Style ausgewählt werden, Beispiel:
Arial
Arial Black

Bei mir:
Arial - Regular, Bold, Italic
Arial Black - Regular, Bold, Italic
...

Bei Windows:
Arial - Halb Schmal, Halb Schmal Kursiv, Kursiv, Standard, Halb Schmal Fett, Halb Schmal Fett Kursiv, Fett, Fett Kursiv, Schwarz, Schwarz Schräg

Für das Abfragen der Families nehme ich:


System.Drawing.Text.InstalledFontCollection installedFonts = new System.Drawing.Text.InstalledFontCollection();
Foreach(System.Drawing.Font fontfamily in installedFonts.Families)
//In Liste einfügen ...

Und für das Abfragen der verfügbaren Stile:


foreach(System.Drawing.FontStyle style in Enum.GetValues(typeof(System.Drawing.FontStyle)))
{
if(SelectedFontFamily.IsStyleAvailable(style))
...
}

Mein Frage ist nun: Wie kann man die Fontfamilien so zusammenfassen, wie der Dialog das macht, und die zusätzlichen "Styles" erhalten?

Thema: Trigger in CodeBehind erzeugen
Am im Forum: GUI: WPF und XAML

Pro System.Windows.Shapes.Path oder pro PathGeometry?

Dem Path müsste man doch einen Style zuweisen können?

So in etwa


Style style = new Style(typeof(DeineKlasse));

Trigger trigger = new Trigger(){Property = DeineKlasse.IsMouseOver, Value = true/false});
Setter setter = new Setter(DeineKlasse.DasProperty, value);// statt value: new Binding(...falls vorhanden...) {Converter = new DeinConverter() }));

trigger.Setters.Add(setter);
style.Trigger.Add(trigger);

DasObjekt.Style = style;

PathGeometry hat aber kein Property für einen Style.

Thema: BitmapImage blockiert File
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Wenn Du das sowieso aus einer Datei lädst, sollte das eigentlich mit .BeginInit(), BitmapCacheOption.OnLoad und .EndInit() gehen, wenn Du die .UriSource setzt.

Thema: DataGrid: Einzelne Zellen einfärben
Am im Forum: GUI: WPF und XAML

Zitat von witte
Dann mache doch eine Liste von ViewModel-Objekten, eines pro Zeile, binde dort das Model und UI-Info dran und binde das in das Grid.

Ich habe das Gefühl, ich denke manchmal zu kompliziert x), merci.

Thema: DataGrid: Einzelne Zellen einfärben
Am im Forum: GUI: WPF und XAML

Hallo,

ich bin gerade dabei ein paar ältere Forms Programme neu zu schreiben und habe Probleme beim Einfärben der Datagrid Zellen.

Die Daten für das Datagrid kommen aus einer Ini-Datei und können beliebig aufgebaut sein. Alle Informationen für den Zell-Inhalt und die Zell-Farbe liegen als Koordinaten vor. Es gibt keinen direkten Bezug zwischen Zell-Inhalt und -Farbe.

In Forms konnte ich einfach die entsprechenden Koordinaten auslesen und die Farbe direkt den Zellen zuweisen.

Aber wie gehe ich denn da in WPF vor?

Aus den Daten der IniDatei baue ich mir zunächst ein Datatable (den Code habe ich beibehalten) und weise dann einfach über dataGrid.ItemsSource = DataTable.DefaultView den Inhalt zu.
Der DataTable enthält ja aber nur Informationen über die Daten, nicht über die GUI.

Ich stehe da ziemlich auf dem Schlauch, wie ich das DataGrid dafür idealerweise anbinde.

Thema: DLL mit mehreren UserControls anlegen, die ich über die Toolbox anlegen kann
Am im Forum: Grundlagen von C#

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.

Thema: DLL mit mehreren UserControls anlegen, die ich über die Toolbox anlegen kann
Am im Forum: Grundlagen von C#

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.

Thema: DLL mit mehreren UserControls anlegen, die ich über die Toolbox anlegen kann
Am im Forum: Grundlagen von C#

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 =/