‫Willkommen zurück.
‫Und in diesem Video, über das wir sprechen werden, benachrichtige ich die Eigenschaft geändert, also über diese Schnittstelle, die es uns ermöglicht,
‫etwas auszulösen, wenn eine Eigenschaft geändert wurde und wir im letzten Video gesehen haben, wie sich die Eigenschaft geändert hat,
‫als wir die Bindung verwendet haben.
‫Und wir werden es diesmal etwas anders machen.
‫Und Sie werden selbst sehen, wie Sie diese Schnittstelle verwenden.
‫Anstelle eines Rasters möchte ich also ein Stickpanel verwenden, weil ich Dinge stapeln möchte und stapeln
‫werde.
‫Als erstes ein Label, bei dem ich den Inhalt auf eins
‫setze und dieses Label so schließe.
‫Und darunter möchte ich ein Textfeld haben, in das wir einen Wert eingeben können.
‫Ich werde hier also keinen Textblock, kein Textfeld verwenden.
‫Ich werde es gleich schließen.
‫Das und im Textfeld möchte ich die Breite von 100 Pixel haben, eine Höhe von sagen wir 30 Pixel, und dann möchte
‫ich den Text einstellen.
‫Nun sollte der Text gebunden werden.
‫Also werde ich hier Data Mining verwenden.
‫Und der Weg, den ich verwenden möchte, wird Nummer eins sein und der Modus wird zwei-Wege sein.
‫Wir haben also gesehen, was dieser Modus bedeutet und was dieser Pfad bedeutet.
‫Jetzt kopieren wir diesen Code und duplizieren ihn hier.
‫Also werde ich es zweimal kopieren und einfügen.
‫Dies wird also für hier taub sein und das wird ein Ergebnis sein.
‫Das wird also das Ergebnis sein und das wird Nummer drei sein.
‫Jetzt fragen Sie sich vielleicht, was diese Nummer eins zwei ist und was daraus resultiert.
‫Nun, wir haben Nummer eins und Nummer zwei und so weiter.
‫Aber das sind nur Inhalte.
‫Sie sind keine Namen.
‫Um eine Verbindung zu ihnen herzustellen oder sie zu verwenden, müssen wir in unseren Code dahinter einsteigen, da ich diese hier
‫erstellen möchte.
‫Also werde ich eigentlich eine neue Klasse erstellen, weil wir das Hauptfenster als unser Programm verwenden werden.
‫So ähnlich wie unser Programm.
‫Aber ich möchte Ich benachrichtigen geändert verwenden.
‫Und um diese Schnittstelle zu verwenden, muss ich eine neue Klasse erstellen, die davon erben kann.
‫Ich werde hier also eine neue Klasse verwenden und sie einige nennen, denn was ich tun möchte, ist, wenn wir zur XML-Datei zurückkehren,
‫haben wir diese Nummer eins, Nummer zwei und drei.
‫Und was ich will ist, wenn ich hier einen Wert und dort einen Wert hinzufüge, dann sollte der Wert hier
‫ganz unten automatisch die Summe der beiden vorherigen sein.
‫Gut.
‫Ich werde dafür eine neue Klasse verwenden.
‫Und diese Klasse sollte von Ich benachrichtige die geänderte Eigenschaft erben.
‫Und um dies nutzen zu wollen, habe ich die Eigenschaft geändert.
‫Wir müssen das System verwenden, dieses Komponentenmodell.
‫Ich werde also das dritte Komponentenmodell des Systems verwenden.
‫Jetzt können Sie sehen, dass unser Interface grün ist, was im Allgemeinen gut funktioniert, genau wie Grün, das
‫die Interface-Farbe in Visual Studio ist.
‫Und jetzt kann ich diese potenziellen Fehler beheben.
‫Sie sehen also, ich muss die Schnittstelle implementieren.
‫Also werde ich das tun.
‫Und wie Sie sehen, haben wir dieses öffentliche Ereignis, die Eigenschaft geändert, die Eigenschaft des Ereignishandlers geändert.
‫Um dies zu verwenden, müssen wir nun eine private Methode namens void für die geänderte Eigenschaft erstellen, die eine Eigenschaft
‫aufnehmen wird.
‫Und in meinem Fall wird diese Eigenschaft ein String sein.
‫Und ich möchte zuerst überprüfen.
‫Wenn die Eigenschaft geändert wurde, ist die geänderte Eigenschaft nicht leer.
‫Also nicht gleich jetzt, denn wenn das der Fall ist, dann möchte ich gleich die Eigenschaft Property geändert
‫nennen.
‫Diese neue Eigenschaft hat Ereignisbögen geändert, die ich an Eigenschaften übergeben werde, also benötigt die Eigenschaft geänderte Ereignisbögen,
‫wie Sie sehen können, einen starken Eigenschaftsnamen.
‫Und der Immobilienname, den ich übergeben möchte, ist die Immobilie selbst.
‫Bei einer Eigentumsänderung wird diese Eigenschaft genannt und ich werde hier eine Party betreten.
‫In Ordnung, wir nennen dieses Ereignis geänderte Eigenschaft einfach, und jetzt müssen wir mehrere Eigenschaften haben,
‫um all diese zu verwenden.
‫Und ich werde zunächst damit beginnen, private Felder zu erstellen.
‫Also eine private Zeichenfolge, Nr.
‫Eins, dann ein privater String, Name zwei und schließlich ein privater String namens result.
‫Und jetzt erstelle ich Eigenschaften für all diese.
‫Also werde ich eine Eigenschaft namens Namwon erstellen.
‫Und diese eine Eigenschaft sollte sich etwas von der Standard-Eigenschaft unterscheiden.
‫Daher werde ich dieses grundlegende Get und Set nicht verwenden.
‫Ich werde eine selbstdefinierte verwenden, also werde ich selbst eine definieren.
‫Und es sollte nicht Namwon zurückgeben, aber es sollte zwar nicht das mit Kapital zurückgeben, nicht das Grundstück,
‫sondern eigentlich dieses Feld hier.
‫Es wird also Namwon zurückgeben.
‫Also Nummer eins zurückgeben.
‫Und wenn ich etwas gesagt habe, dann möchte ich den Wert setzen.
‫Übrigens verwende ich hier oben String, also sollte meine Eigenschaft auch Strings sein.
‫Also werde ich Namwon zurückgeben.
‫Und wenn jetzt jemand versucht, Nummer eins zu setzen, möchte ich versuchen, das zu analysieren, denn was ist, wenn es keine Nummer ist, die der
‫Benutzer eingegeben hat?
‫Was, wenn er eintrat, ich weiß nicht, Briefe oder so?
‫Dann möchte ich das einfangen und ändern.
‫Also werde ich diese Nummer verwenden und hier ein neues Buch erstellen.
‫Und ich rufe an, Ergebnis wird dreigliedrig sein und ich werde versuchen, den Wert zu übergeben, und ich werde
‫die Nummer herausbekommen.
‫Wir haben Tripa also schon einmal gesehen.
‫Es versucht einfach, den angegebenen Wert in eine ganze Zahl zu übergeben.
‫Und wenn es funktioniert hat, dann wird es wahr sein.
‫Und wenn es nicht funktioniert hat, dann ist es falsch.
‫Und übrigens, wenn es geklappt hat, dann kriegen wir die Nummer auch raus.
‫Also, wenn ich kann oder wenn ich jetzt einen positiven Wert erhalte, werde ich einfach sagen, dass niemand der Wert sein wird.
‫Und was ich auch ändern möchte oder der Auslöser ist, ist die eigene Eigenschaft geändert und ich werde die Nummer
‫eins auslösen.
‫Gut.
‫Also werde ich diese Eigenschaft Nummer eins ändern, wenn sich die Werte ändern.
‫Was wir jetzt auch tun können, ist das einfach für unsere zweite Nummer zu kopieren.
‫Also Nummer zwei, und ich werde das in Nummer zwei ändern, es wird auch eine Nummer sein und es wird
‫Nummer zwei sein und da ist es auch.
‫Und jetzt brauchen wir endlich eine Eigenschaft für unser Ergebnis.
‫Also werde ich dieses öffentliche String-Ergebnis erstellen.
‫Und dieser wird auch ein Get und ein Set haben.
‫Hier werden sie also haben und das Ergebnis wird in diesem Pass Nr.
‫Einer.
‫Plus int.
‫Um sie weiterzugeben und warum kann ich das jetzt tun?
‫Nun, weil ich sie zurückschicke und immer wenn ich Namwon setze und ich auch so einmal hier sind sie schon ganze Zahlen, weil
‫sie nur gesetzt sind, sie haben nur einen Wert, wenn sie eine Zahl sind, OK, also sonst sie werden nie
‫gesetzt, sie werden leer sein.
‫Und dann müssen wir hier etwas zurückgeben.
‫Also werde ich wieder auf Saite zurückkehren.
‫Also das Ergebnis.
‫Wenn jetzt jemand versucht, das Ergebnis festzulegen, gehe ich einfach wie folgt vor.
‫Das Set-Endergebnis wird also tatsächlich das Gleiche sein, was wir hier gemacht haben, nur dass wir es nicht zurückgeben, aber
‫wir haben es so eingestellt, dass es eine Pause zum String geben wird.
‫Und jetzt hier drinnen haben wir Eigentum aufgerufen, für unsere Ergebnisse geändert, und das gleiche gilt für unsere Nummer zu und
‫Nummer eins.
‫Wenn die Eigenschaft geändert wird, ändert sich damit, wie Sie sich erinnern können, der Wert der Eigenschaft.
‫Also Property Changed Event ARGs, und es wird die Property aufnehmen und
‫dieses Property Changed Event nennen und dann all diese Eigenschaften.
‫Also werden die Eigenschaft Nummer eins, die Eigenschaft Nummer zwei und das Ergebnis eins benachrichtigt und unser Ergebnis sollte
‫geändert werden.
‫Ich möchte also, dass jedes Mal, wenn jemand eine Zahl eingibt, auch diese Zahl 3
‫geändert wird.
‫Und bevor wir das überprüfen oder testen können, müssen wir in unsere Dot-Dot-Datei gehen und tatsächlich ein Objekt
‫oder eine Klasse erstellen.
‫Wir haben also dieselbe Klasse erstellt und ich werde fortfahren und ein neues Objekt erstellen.
‫Ich werde es hier oben erstellen, das nicht nur ein Objekt sein wird, sondern auch eine Eigenschaft.
‫Ein Objekt wird es also abrufen und setzen.
‫Nun, um darauf zugreifen zu können, müssen wir auch unsere einige öffentlich machen.
‫Also machen wir diese Klasse öffentlich, und jetzt können wir mit einem Objekt fortfahren.
‫Nun, ich kann hier am Anfang irgendein Objekt setzen, und ich werde sagen, es ist eine neue Summe
‫mit dem Wert von nicht eins ist eins.
‫Und Nummer zwei, nur einen Wert von, sagen wir, drei.
‫Und wie Sie sehen, haben wir hier zwei Strings, weil es sonst nicht funktioniert, weil diese Eigenschaften
‫Strings sind.
‫Rechts.
‫Was ich jetzt aufrufen oder einstellen muss, ist der Datenkontext für unser irgendein Objekt, da sonst
‫nichts passiert.
‫Also lassen Sie uns das jetzt ausführen.
‫Und dann sehen Sie, wir haben nie Nummer drei gesagt, und das ist das Ergebnis.
‫Und vielleicht ist es sogar noch besser, wenn wir es tatsächlich Ergebnisse nennen.
‫Lassen Sie uns also hierher gehen und das Label zum Ergebnis oder vielleicht sogar zu einigen ändern.
‫Das wird also die Summe sein, vielleicht sogar so etwas wie die von Nummer eins und Nummer zwei.
‫OK, also lassen Sie es uns jetzt noch einmal ausführen.
‫Und Sie sind eins plus drei ist vier, also ändern wir es jetzt in sagen wir 25 und wie Sie sehen, hat es sich geändert.
‫Jetzt wurde der Wert von drei auf 31 geändert, Sie sehen 56.
‫Nun, wenn ich diesen Wert hier ändere.
‫Sie sehen, es geht auf seinen normalen Wert zurück, denn was wir hier im Setter gemacht haben, wenn jemand versucht, das
‫Ergebnis zu setzen, setzen wir das Ergebnis einfach wieder auf den Wert von und über Nummer eins und Nummer
‫zwei.
‫Es wird also immer zum tatsächlichen Ergebnis zurückkehren, wenn wir jemals versucht haben, das Ergebnis unseres String-Ergebnisses
‫festzulegen.
‫OK, jetzt können Sie damit herumspielen und berechnen, was Sie wollen, und
‫Sie haben Echtzeit-Antworten, mehr Echtzeit.
‫Nun, Summen Ihrer beiden Werte.
‫Sie könnten fortfahren und einen weiteren hinzufügen oder jetzt fortfahren und diesen in einen Multiplikator ändern.
‫Aber jetzt weiß ich, dass das einiges an Einrichtung war, die wir machen mussten.
‫Und so möchte ich es noch einmal ganz schnell mit dir durchgehen.
‫In der Zemo-Datei hatten wir also diese drei Labels und diese drei Textfelder, die nur die UI-Elemente sind.
‫Rechts.
‫Und der Text von jedem davon ist verbunden.
‫Dieser hat also den Weg zur Nummer eins.
‫Dies ist der Weg zu den beiden.
‫Und dieser hat den Weg, das Ergebnis.
‫Und das sind die hier.
‫Also haben wir die Eigenschaften Nummer
‫eins, Nummer zwei und Nummer
‫drei erstellt geändert.
‫Jetzt haben wir eine Methode namens On Property Changed erstellt, die jedes Mal aufgerufen wird, wenn eine unserer Eigenschaften
‫geändert wird.
‫Und das geschieht, sobald eine Eigenschaft festgelegt ist.
‫Also haben wir diese Eigenschaft, Nummer eins.
‫Und wenn jemand versucht, diesen Wert von Namwon festzulegen, werden wir dies einfach als Eigenschaft geändert
‫bezeichnen.
‫Und hier legen wir das Grundstück fest.
‫Also sagen wir, OK, gib mir eine Eigenschaft und wir ändern diese Eigenschaft auf den angegebenen Wert.
‫Wir stellen es also so ziemlich ein, aber gleichzeitig setzen wir nicht nur das, was wir
‫gerade in den Mittelpunkt stellen.
‫Wir setzen hier also nicht nur niemanden, sondern wir setzen auch das Ergebnis und nicht das und hier sehen Sie
‫diese Zeile hier.
‫Es legt dieses Feld so fest, dass dieses private Zeichenfolgenfeld geändert wird, und dies bei Eigenschaftsänderung ändert tatsächlich
‫die Eigenschaft selbst.
‫Es wird also den Wert der Eigenschaft selbst ändern.
‫Gleichzeitig wird jedoch der Wert des Eigenschaftsergebnisses geändert.
‫Daher wird unser Ergebnis jedes Mal aktualisiert, wenn wir den Wert von eins ändern.
‫Und das gleiche gilt auch für sie.
‫Dasselbe gilt für unser Ergebnis, bei dem ich jedes Mal sagte, dass das Ergebnis geändert wird,
‫wir dies als Eigentum bezeichnen wollen.
‫Methode auch geändert.
‫Jetzt sehen Sie also, wie Sie die I-95-Eigenschaft geändert verwenden können, wie Sie diese Schnittstelle verwenden können und wie Sie sie auf verschiedene Weise
‫verwenden können, und es ist wirklich interessant, sie immer dann zu verwenden, wenn eine Eigenschaft geändert
‫wird.
‫Nehmen wir an, die Farbe wird geändert und Sie möchten ein Ereignis auslösen, das einige
‫ausgefallene Animationen ausführt, oder jemand drückt eine Schaltfläche, die sich ändert, und eine Eigenschaft irgendwo in Ihrem Programm.
‫Und wenn danach etwas Großartiges passiert, können Sie das alles einrichten.
‫Ich habe Ihnen mitgeteilt, dass die Schnittstelle geändert wurde. Natürlich müssen Sie hier eine Vererbungskorrelation zwischen der von
‫Ihnen verwendeten Klasse erstellen.
‫Und ich melde Eigentum geändert.