Diese Diskussion führt zu nichts. Die Helfer haben dir zu deinem Problem geantwortet. Deine Reaktion ist völlig unnötig. Daher ist jetzt hier zu. Bitte beachte zukünftig [Hinweis] Wie poste ich richtig?
Man würde den Inhalt der Canvas im XAML an die Canvas binden. So könntest du auch Trigger definieren.
Siehe dazu [Artikel] MVVM und DataBinding
Man kann Trigger zwar auch im Code-behind definieren, aber das ist umständlich, schwer zu lesen und zu verstehen, und von WPF eigentlich auch nicht so vorgesehen. Daher wirst du auch kaum jemanden finden, der dir damit weiterhelfen könnte.
@Palladin007
Ja, wenn eine Klasse IDisposable implementiert, dann muß man selbst dafür sorgen, daß am Ende Dispose aufgerufen wird. Entweder durch den Aufruf der Methode oder durch die Verwendung des using-Statements.
Keine einzige Anleitung, auch nicht der Artikel MVVM enthält dahingehend eine eindeutige Antwort.
Ein kleiner Hinweis in dieser Richtung hätte mir jedoch etliche Stunden Probierens mit dem falschen Event gespart.
Im Artikel steht doch:
Zitat
2.4 ViewModel-Auflistungen
Eine eigene Implementierung der INotifyCollectionChanged-Schnittstelle kann man sich übrigens sparen, denn der Framework enthält für diesen Zweck bereits die ObservableCollection-Klasse.
Aber was rufe ich auf, um mich so teuer wie möglich zu verkaufen, ohne aber unverschämt zu sein?
Das ist die falsche Frage
Du mußt jemand finden, der dir ein gutes Angebot machen will, weil er deine Qualifikationen braucht.
Wenn du also gut mathematische Algorithmen programmieren kannst, dann solltest du dir erstmal ein Unternehmen (oder eine Behörde oder so) suchen, wo Leute mit dieser Qualifikation benötigt werden. Und dann mußt du auch irgendwie zeigen können, daß du diese Qualifikationen besitzt. "Kann ich, hab ich schon gemacht, vertraut mir einfach" kommt in einem Jobinterview nicht so gut an. Am besten hast du Code, den du zeigen und erklären kannst, damit die Leute wissen, daß du es auch selbst geschrieben hast, und weißt, was du tust. Wenn du deinen Code bei GitHub hostest, dann kannst du gleich den Link in deine Bewerbungen reinschreiben.
Und über das Gehalt redet man ja meist auch erst zum Schluß. Wenn also schon klar ist, daß beide Seiten an einer Zusammenarbeit interessiert sind.
Ich würde für WPF auch uneingeschränkt AvalonEdit empfehlen, damit kann man Editoren für alle möglichen Sprachen inklusive Syntax-Highlighting und Intellisense erstellen. MVVM wird auch unterstützt.
Wie man es richtig macht, steht in [Artikel] MVVM und DataBinding. Darauf bist du ja schon öfters hingewiesen worden. Schau dir das ruhig mal an, das macht alles wesentlich einfacher.
Die DataGridColumn ist in WPF nicht Teil des VisualTrees, daher ist auch das Window kein übergeordnetes Element. Anstatt RelativeSource zu verwenden, kannst du mit ElementName direkt auf ein benanntes Element zugreifen. Siehe dazu die Beispiele in [Artikel] MVVM und DataBinding.
Das ViewModel ist dafür verantwortlich, Zustände zu speichern. Die Benutzeroberfläche ist nur dazu da, die Zustände anzuzeigen und auf Benutzereingaben zu reagieren.
In deinem Beispiel wird das UserControl jedes Mal neu erstellt, dadurch geht der Zustand verloren. Erstelle dir ein ViewModel und binde das an das UserControl, dann wird es funktionieren. Siehe dazu den von Th69 verlinkten Artikel, sowie [Artikel] Drei-Schichten-Architektur
Konkret möchte ich zwei Versionen einer Webseite vergleichen (die gerenderten Versionen). Wenn ich die Pixel 1 zu 1 vergleich, dann würde ich eine fast 100%ige Änderung erhalten, wenn ich oben auf der Webseite eine Zeile Text einfüge. Ich suche nun nach einem Verfahren/Algorithmus, der mir in diesem Fall ein realistischeres Ergebnis liefern würde.
Was genau wäre für dich in diesem Fall ein realistisches Ergebnis?
Wenn man nur wissen möchte, ob ein String einen Zeilenumbruch enthält, dann geht das am einfachsten so:
bool isMultiLine = someText.Contains('\n');
Das funktioniert mit Texten von (fast) allen Systemen, denn die meisten Systeme benutzen irgendeine Kombination mit '\n' oder nur '\n' für einen Zeilenumbruch.
Beschäftige dich mal mit objektorientierter Programmierung. Steuerelement in der UI und Anwendungs-Einstellungen sind auch nur spezielle Fälle davon. Damit kannst du dich dann beschäftigen, wenn du die Basics beherrschst.
Wenn du das Bild selber zeichnest, dann mußt du auch selbst die PictureBox skalieren und die Scrollbars anpassen. Oder andersherum das Bild skalieren, damit es in die PictureBox paßt.
Warum sollte die PictureBox eigentlich zu langsam sein, um ein Bild anzuzeigen? Sie wird ja auch nur die GDI-Funktionen des Betriebssystem dafür aufrufen.