{"id":55000360,"date":"2023-04-01T00:00:00","date_gmt":"2023-04-25T16:37:42","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=360"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"AfterUpdate_fuer_WPFSteuerelemente_mit_VBNET","status":"publish","type":"post","link":"https:\/\/vbentwickler.de\/AfterUpdate_fuer_WPFSteuerelemente_mit_VBNET\/","title":{"rendered":"AfterUpdate f&uuml;r WPF-Steuerelemente mit VB.NET"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/vg08.met.vgwort.de\/na\/5142afd48f8d417db88ea78bfaf8dbe7\" width=\"1\" height=\"1\" alt=\"\"><\/p>\n<p><b>Wenn man einfache Anwendungen wie im Artikel &#8220;Standalone-Apps mit .NET programmieren&#8221; beschrieben erstellt, st&ouml;&szlig;t man relativ schnell an Grenzen. Eine davon sind die verf&uuml;gbaren Ereignisse f&uuml;r Steuerelemente. Wer einmal mit Access gearbeitet hat, wei&szlig;, dass es f&uuml;r jedes Steuerelement ein Ereignis wie &#8220;Nach Aktualisierung&#8221; gibt. Unter WPF ist das nicht der Fall, was an der zugrunde liegenden Philosophie liegt. Diese lautet, dass Benutzeroberfl&auml;che und Anwendungslogik so weit wie m&ouml;glich getrennt werden sollen. In diesem Artikel zeigen wir anhand eines Beispiels, wie sich dies in der Praxis auswirkt.<\/b><\/p>\n<p>Im Artikel <b>Standalone-Apps mit .NET programmieren <\/b>(<b>www.vbentwickler.de\/358<\/b>) haben wir grundlegend gezeigt, wie man <b>.exe<\/b>-Dateien zum Erledigen kleiner oder auch gr&ouml;&szlig;erer Aufgaben mit Visual Studio programmieren kann. In einem weiteren Artikel namens <b>Anwendungsdaten speichern per VB.NET <\/b>(<b>www.vbentwickler.de\/359<\/b>) haben wir darauf aufbauend eine kleine Anwendung erzeugt, mit der wir die in Textfelder und andere Steuerelemente als Anwendungskonfigurationsdaten speichern k&ouml;nnen.<\/p>\n<p>Allerdings haben wir diese immer nur komplett entweder nach einem Klick auf eine daf&uuml;r vorgesehene <b>Speichern<\/b>-Schaltfl&auml;che oder beim Schlie&szlig;en der Anwendung gespeichert.<\/p>\n<p>Dort haben wir auch festgestellt, dass es unter WPF nicht f&uuml;r alle Steuerelemente Ereignisse gibt, die nach der Aktualisierung des Inhalts ausgel&ouml;st werden. Bei einem <b>TextBox<\/b>-Element k&ouml;nnen wir zwar das <b>TextChanged<\/b>-Ereignis nutzen, das nach der Eingabe eines jeden Zeichens ausgel&ouml;st wird, aber den Inhalt nach jeder nicht durch die Eingabetaste best&auml;tigten &Auml;nderung zu speichern w&auml;re doch etwas &uuml;bertrieben.<\/p>\n<p>Also schauen wir uns im vorliegenden Artikel an, wie man solche Aufgaben unter Ber&uuml;cksichtigung der Philosophie von WPF l&ouml;st. Und dabei steigen wir nicht in die Tiefe ein &#8211; das w&uuml;rde bedeuten, das <b>MVVM<\/b>-Entwurfsmuster zu erl&auml;utern (<b>Model-View-ViewModel<\/b>). Wir wollen einfach nur daf&uuml;r sorgen, dass wir unser Ziel, die Daten der Steuerelemente ohne Ereignisse der Steuerelemente und nur mit Datenbindung in der Konfigurationsdatei zu speichern und diese beim Starten der Anwendung auch wiederherzustellen.<\/p>\n<h2>Elemente bei der WPF-Datenbindung<\/h2>\n<p>Bei der WPF-Datenbindung ben&ouml;tigen wir die folgenden Elemente:<\/p>\n<ul>\n<li>Ein Steuerelement, dessen Eigenschaft, &uuml;ber welche der Inhalt festgelegt wird, an eine Eigenschaft des Code behind-Moduls gebunden wird.<\/li>\n<li>Eine Eigenschaft im Code behind-Modul, die ausgelesen und beschrieben werden kann.<\/li>\n<li>Die Angabe, an welche Klasse das XAML-Fenster gebunden und woher es seine Daten beziehen soll &#8211; in unserem Fall die Code behind-Klasse.<\/li>\n<\/ul>\n<p>Nachfolgend schauen wir uns die notwendigen Schritte an. Dabei gehen wir davon aus, dass Du bereits ein neues Projekt des Typs <b>WPF-App (.NET Framework) <\/b>erstellt hat und das Fenster <b>MainWindow.xaml <\/b>in der Entwurfsansicht angezeigt wird. Au&szlig;erdem kannst Du bereits einmal im Projektmappen-Explorer den Eintrag <b>MainWindow.xaml <\/b>erweitern, sodass Du hier die Code behind-Datei <b>MainWindow.xaml.vb <\/b>siehst. Diese &ouml;ffnen wir per Doppelklick.<\/p>\n<h2>TextBox mit Datenbindung anlegen<\/h2>\n<p>Dem Fenster <b>MainWindow.xaml <\/b>f&uuml;gen wir nun ein erstes Steuerelement namens <b>txtVorname <\/b>hinzu. Im Beispielprojekt haben wir dieses in eine Zeile des Grids eingebettet &#8211; mehr dazu im Artikel <b>Standalone-Apps mit .NET programmieren <\/b>(<b>www.vbentwickler.de\/358<\/b>). Der Code f&uuml;r dieses Element sieht derzeit so aus:<\/p>\n<pre>&lt;TextBox x:Name=\"txtVorname\" Grid.Column=\"1\" Width=\"200\"&gt;&lt;\/TextBox&gt;<\/pre>\n<p>Damit haben wir nun ein <b>TextBox<\/b>-Element, in das wir Text eintragen k&ouml;nnen &#8211; aber es geschieht nichts weiter damit.<\/p>\n<h2>Eigenschaft f&uuml;r die Datenbindung hinzuf&uuml;gen<\/h2>\n<p>Damit die eingegebenen Daten weiterverarbeitet werden k&ouml;nnen oder wir das Textfeld aus dem Code heraus f&uuml;llen k&ouml;nnen, wenden wir uns nun der Code behind-Datei <b>MainWindow.xaml.vb <\/b>zu. Hier f&uuml;gen wir nun eine &ouml;ffentliche Eigenschaft hinzu, an die wir sp&auml;ter das Steuerelement binden wollen.<\/p>\n<p>Um Schreibarbeit zu sparen, legen wir die Eigenschaft zun&auml;chst wie folgt an:<\/p>\n<pre><span style=\"color:blue;\">Public Property <\/span>Vorname<span style=\"color:blue;\"> As String<\/span><\/pre>\n<p>Dann klicken wir mit der rechten Maustaste auf diese Zeile und w&auml;hlen im Kontextmen&uuml; den Eintrag <b>Schnellaktionen und Refactorings&#8230; <\/b>aus (siehe Bild 1).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2023_02\/pic_360_001.png\" alt=\"Aufrufen der Schnellaktionen\" width=\"574,6265\" height=\"158,8\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 1: Aufrufen der Schnellaktionen<\/span><\/b><\/p>\n<p>Dies zeigt ein Popupmen&uuml; an, das ganz unten den Eintrag <b>In vollst&auml;ndige Eigenschaft konvertieren <\/b>anbietet. Fahren wir mit der Maus &uuml;ber diesen Eintrag, liefert dieser eine Vorschau der durch diesen Befehl angesto&szlig;enen Code&auml;nderung (siehe Bild 2).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2023_02\/pic_360_002.png\" alt=\"Anzeige der gew&uuml;nschten Schnellaktion\" width=\"649,627\" height=\"349,0385\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 2: Anzeige der gew&uuml;nschten Schnellaktion<\/span><\/b><\/p>\n<p>Klicken wir die Option an, erhalten wir das Ergebnis aus Bild 3. Was haben wir nun davon? Die Code behind-Klasse enth&auml;lt nun eine Eigenschaft, die wir per Code f&uuml;llen k&ouml;nnen oder an die wir unser Steuerelement <b>txtVorname <\/b>binden k&ouml;nnen. Letzteres f&uuml;hrt dazu, dass bei einer &Auml;nderung des Inhalt von <b>txtVorname <\/b>der Inhalt &uuml;ber die &ouml;ffentliche Eigenschaft <b>Vorname <\/b>in die private Variable <b>_Vorname <\/b>geschrieben wird. Diese wiederum k&ouml;nnen wir &uuml;ber die &ouml;ffentliche Eigenschaft auslesen.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2023_02\/pic_360_003.png\" alt=\"Vollst&auml;ndige &ouml;ffentliche Eigenschaft\" width=\"424,6267\" height=\"278,3268\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 3: Vollst&auml;ndige &ouml;ffentliche Eigenschaft<\/span><\/b><\/p>\n<p>Der Vorteil ist jedoch: Wenn wir das Steuerelement an diese Eigenschaft binden und dann den Wert des Steuerelements &uuml;ber die Benutzeroberfl&auml;che &auml;ndern, wird automatisch der Wert der &ouml;ffentlichen Eigenschaft ge&auml;ndert.<\/p>\n<p>Dabei durchlaufen wir in diesem Fall die Anweisungen zwischen <b>Set <\/b>und <b>End Set<\/b>. Hier k&ouml;nnen wir nun Code einf&uuml;gen, der den neuen Wert im Steuerelement weiterverarbeitet &#8211; zum Beispiel, um diesen zu speichern. Doch zun&auml;chst ben&ouml;tigen wir die Datenbindung.<\/p>\n<h2>Steuerelement an Eigenschaft binden<\/h2>\n<p>Damit das Steuerelement an die Eigenschaft gebunden wird, sind zwei Schritte n&ouml;tig. Einer davon ist, in der Definition des Steuerelements anzugeben, dass es an die &ouml;ffentliche Eigenschaft gebunden werden soll. Das erledigen wir, indem wir die Definition des Steuerelements wie folgt erweitern:<\/p>\n<pre>&lt;TextBox x:Name=\"txtVorname\" ...     Text=\"{Binding Vorname}\"&gt;&lt;\/TextBox&gt;<\/pre>\n<div class=\"rcp_restricted\"><p><span style=\"color: #ff0000\">M&ouml;chten Sie weiterlesen? Dann l&ouml;sen Sie Ihr Ticket!<\/span><br \/>\n<span style=\"color: #ff0000\">Hier geht es zur Bestellung des Jahresabonnements des Magazins <strong>Visual Basic Entwickler<\/strong>:<\/span><br \/>\n<span style=\"color: #ff0000\"><a style=\"color: #ff0000\" href=\"https:\/\/shop.minhorst.com\/magazine\/363\/visual-basic-entwickler-jahresabonnement?c=77\">Zur Bestellung ...<\/a><\/span><br \/>\n<span style=\"color: #ff0000\">Danach greifen Sie sofort auf <strong>alle rund 200 Artikel<\/strong> unseres Angebots zu - auch auf diesen hier!<\/span><br \/>\n<span style=\"color: #000000\">Oder haben Sie bereits Zugangsdaten? Dann loggen Sie sich gleich hier ein:<\/span><\/p>\n<\/div>\n\n\t\n\t<form id=\"rcp_login_form\"  class=\"rcp_form\" method=\"POST\" action=\"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts\/55000360\/\">\n\n\t\t\n\t\t<fieldset class=\"rcp_login_data\">\n\t\t\t<p>\n\t\t\t\t<label for=\"rcp_user_login\">Username or Email<\/label>\n\t\t\t\t<input name=\"rcp_user_login\" id=\"rcp_user_login\" class=\"required\" type=\"text\"\/>\n\t\t\t<\/p>\n\t\t\t<p>\n\t\t\t\t<label for=\"rcp_user_pass\">Password<\/label>\n\t\t\t\t<input name=\"rcp_user_pass\" id=\"rcp_user_pass\" class=\"required\" type=\"password\"\/>\n\t\t\t<\/p>\n\t\t\t\t\t\t<p>\n\t\t\t\t<input type=\"checkbox\" name=\"rcp_user_remember\" id=\"rcp_user_remember\" value=\"1\"\/>\n\t\t\t\t<label for=\"rcp_user_remember\">Remember me<\/label>\n\t\t\t<\/p>\n\t\t\t<p class=\"rcp_lost_password\"><a href=\"\/data\/wp\/v2\/posts\/55000360?rcp_action=lostpassword\"><\/a><\/p>\n\t\t\t<p>\n\t\t\t\t<input type=\"hidden\" name=\"rcp_action\" value=\"login\"\/>\n\t\t\t\t\t\t\t\t\t<input type=\"hidden\" name=\"rcp_redirect\" value=\"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts\/55000360\/\"\/>\n\t\t\t\t\t\t\t\t<input type=\"hidden\" name=\"rcp_login_nonce\" value=\"7996341049\"\/>\n\t\t\t\t<input id=\"rcp_login_submit\" class=\"rcp-button\" type=\"submit\" value=\"Login\"\/>\n\t\t\t<\/p>\n\t\t\t\t\t<\/fieldset>\n\n\t\t\n\t<\/form>\n<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Wenn man einfache Anwendungen wie im Artikel &#8220;Standalone-Apps mit .NET programmieren&#8221; beschrieben erstellt, st&ouml;&szlig;t man relativ schnell an Grenzen. Eine davon sind die verf&uuml;gbaren Ereignisse f&uuml;r Steuerelemente. Wer einmal mit Access gearbeitet hat, wei&szlig;, dass es f&uuml;r jedes Steuerelement ein Ereignis wie &#8220;Nach Aktualisierung&#8221; gibt. Unter WPF ist das nicht der Fall, was an der zugrunde liegenden Philosophie liegt. Diese lautet, dass Benutzeroberfl&auml;che und Anwendungslogik so weit wie m&ouml;glich getrennt werden sollen. In diesem Artikel zeigen wir anhand eines Beispiels, wie sich dies in der Praxis auswirkt.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"categories":[66022023,662023,44000034,44000031,44000032],"tags":[],"yst_prominent_words":[],"class_list":["post-55000360","post","type-post","status-publish","format-standard","hentry","category-66022023","category-662023","category-COMAddIns_programmieren","category-twinBASICProgrammierung","category-VBNETProgrammierung"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.8 - aioseo.com -->\n\t<meta name=\"description\" content=\"Wenn man einfache Anwendungen wie im Artikel &quot;Standalone-Apps mit .NET programmieren&quot; beschrieben erstellt, st\u00f6\u00dft man relativ schnell an Grenzen. Eine davon sind die verf\u00fcgbaren Ereignisse f\u00fcr Steuerelemente. Wer einmal mit Access gearbeitet hat, wei\u00df, dass es f\u00fcr jedes Steuerelement ein Ereignis wie &quot;Nach Aktualisierung&quot; gibt. Unter WPF ist das nicht der Fall, was an der zugrunde liegenden Philosophie liegt. Diese lautet, dass Benutzeroberfl\u00e4che und Anwendungslogik so weit wie m\u00f6glich getrennt werden sollen. In diesem Artikel zeigen wir anhand eines Beispiels, wie sich dies in der Praxis auswirkt.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Andr\u00e9 Minhorst\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/vbentwickler.de\/AfterUpdate_fuer_WPFSteuerelemente_mit_VBNET\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.8\" \/>\n\t\t<meta property=\"og:locale\" content=\"de_DE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"Visual Basic Entwickler - Das Magazin f\u00fcr Datenbankentwickler auf Basis von Visual Studio und Co.\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"AfterUpdate f\u00fcr WPF-Steuerelemente mit VB.NET - Visual Basic Entwickler\" \/>\n\t\t<meta property=\"og:description\" content=\"Wenn man einfache Anwendungen wie im Artikel &quot;Standalone-Apps mit .NET programmieren&quot; beschrieben erstellt, st\u00f6\u00dft man relativ schnell an Grenzen. Eine davon sind die verf\u00fcgbaren Ereignisse f\u00fcr Steuerelemente. Wer einmal mit Access gearbeitet hat, wei\u00df, dass es f\u00fcr jedes Steuerelement ein Ereignis wie &quot;Nach Aktualisierung&quot; gibt. Unter WPF ist das nicht der Fall, was an der zugrunde liegenden Philosophie liegt. Diese lautet, dass Benutzeroberfl\u00e4che und Anwendungslogik so weit wie m\u00f6glich getrennt werden sollen. In diesem Artikel zeigen wir anhand eines Beispiels, wie sich dies in der Praxis auswirkt.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/vbentwickler.de\/AfterUpdate_fuer_WPFSteuerelemente_mit_VBNET\/\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/datenbankentwickler.net\/wp-content\/uploads\/2022\/08\/cropped-header_vbe-1.png\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/datenbankentwickler.net\/wp-content\/uploads\/2022\/08\/cropped-header_vbe-1.png\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2023-04-25T16:37:42+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"-001-11-30T00:00:00+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n\t\t<meta name=\"twitter:title\" content=\"AfterUpdate f\u00fcr WPF-Steuerelemente mit VB.NET - Visual Basic Entwickler\" \/>\n\t\t<meta name=\"twitter:description\" content=\"Wenn man einfache Anwendungen wie im Artikel &quot;Standalone-Apps mit .NET programmieren&quot; beschrieben erstellt, st\u00f6\u00dft man relativ schnell an Grenzen. Eine davon sind die verf\u00fcgbaren Ereignisse f\u00fcr Steuerelemente. Wer einmal mit Access gearbeitet hat, wei\u00df, dass es f\u00fcr jedes Steuerelement ein Ereignis wie &quot;Nach Aktualisierung&quot; gibt. Unter WPF ist das nicht der Fall, was an der zugrunde liegenden Philosophie liegt. Diese lautet, dass Benutzeroberfl\u00e4che und Anwendungslogik so weit wie m\u00f6glich getrennt werden sollen. In diesem Artikel zeigen wir anhand eines Beispiels, wie sich dies in der Praxis auswirkt.\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/datenbankentwickler.net\/wp-content\/uploads\/2022\/08\/cropped-header_vbe-1.png\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"BlogPosting\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/AfterUpdate_fuer_WPFSteuerelemente_mit_VBNET\\\/#blogposting\",\"name\":\"AfterUpdate f\\u00fcr WPF-Steuerelemente mit VB.NET - Visual Basic Entwickler\",\"headline\":\"AfterUpdate f&uuml;r WPF-Steuerelemente mit VB.NET\",\"author\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/author\\\/andreminhorst-com\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/#organization\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"http:\\\/\\\/vg08.met.vgwort.de\\\/na\\\/5142afd48f8d417db88ea78bfaf8dbe7\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/AfterUpdate_fuer_WPFSteuerelemente_mit_VBNET\\\/#articleImage\"},\"datePublished\":\"2023-04-01T00:00:00+00:00\",\"dateModified\":\"-0001-11-30T00:00:00+00:00\",\"inLanguage\":\"de-DE\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/AfterUpdate_fuer_WPFSteuerelemente_mit_VBNET\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/AfterUpdate_fuer_WPFSteuerelemente_mit_VBNET\\\/#webpage\"},\"articleSection\":\"2\\\/2023, 2023, COM-Add-Ins programmieren, twinBASIC-Programmierung, VB.NET-Programmierung\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/AfterUpdate_fuer_WPFSteuerelemente_mit_VBNET\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/vbentwickler.de\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/category\\\/2023\\\/#listItem\",\"name\":\"2023\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/category\\\/2023\\\/#listItem\",\"position\":2,\"name\":\"2023\",\"item\":\"https:\\\/\\\/vbentwickler.de\\\/category\\\/2023\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/category\\\/2023\\\/2\\\/2023\\\/#listItem\",\"name\":\"2\\\/2023\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/category\\\/2023\\\/2\\\/2023\\\/#listItem\",\"position\":3,\"name\":\"2\\\/2023\",\"item\":\"https:\\\/\\\/vbentwickler.de\\\/category\\\/2023\\\/2\\\/2023\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/AfterUpdate_fuer_WPFSteuerelemente_mit_VBNET\\\/#listItem\",\"name\":\"AfterUpdate f&uuml;r WPF-Steuerelemente mit VB.NET\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/category\\\/2023\\\/#listItem\",\"name\":\"2023\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/AfterUpdate_fuer_WPFSteuerelemente_mit_VBNET\\\/#listItem\",\"position\":4,\"name\":\"AfterUpdate f&uuml;r WPF-Steuerelemente mit VB.NET\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/category\\\/2023\\\/2\\\/2023\\\/#listItem\",\"name\":\"2\\\/2023\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/#organization\",\"name\":\"Datenbankentwickler\",\"description\":\"Das Magazin f\\u00fcr Datenbankentwickler auf Basis von Visual Studio und Co.\",\"url\":\"https:\\\/\\\/vbentwickler.de\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/vbentwickler.de\\\/wp-content\\\/uploads\\\/2022\\\/08\\\/cropped-header_vbe-1.png\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/AfterUpdate_fuer_WPFSteuerelemente_mit_VBNET\\\/#organizationLogo\",\"width\":664,\"height\":225},\"image\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/AfterUpdate_fuer_WPFSteuerelemente_mit_VBNET\\\/#organizationLogo\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/author\\\/andreminhorst-com\\\/#author\",\"url\":\"https:\\\/\\\/vbentwickler.de\\\/author\\\/andreminhorst-com\\\/\",\"name\":\"Andr\\u00e9 Minhorst\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/AfterUpdate_fuer_WPFSteuerelemente_mit_VBNET\\\/#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"width\":96,\"height\":96,\"caption\":\"Andr\\u00e9 Minhorst\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/AfterUpdate_fuer_WPFSteuerelemente_mit_VBNET\\\/#webpage\",\"url\":\"https:\\\/\\\/vbentwickler.de\\\/AfterUpdate_fuer_WPFSteuerelemente_mit_VBNET\\\/\",\"name\":\"AfterUpdate f\\u00fcr WPF-Steuerelemente mit VB.NET - Visual Basic Entwickler\",\"description\":\"Wenn man einfache Anwendungen wie im Artikel \\\"Standalone-Apps mit .NET programmieren\\\" beschrieben erstellt, st\\u00f6\\u00dft man relativ schnell an Grenzen. Eine davon sind die verf\\u00fcgbaren Ereignisse f\\u00fcr Steuerelemente. Wer einmal mit Access gearbeitet hat, wei\\u00df, dass es f\\u00fcr jedes Steuerelement ein Ereignis wie \\\"Nach Aktualisierung\\\" gibt. Unter WPF ist das nicht der Fall, was an der zugrunde liegenden Philosophie liegt. Diese lautet, dass Benutzeroberfl\\u00e4che und Anwendungslogik so weit wie m\\u00f6glich getrennt werden sollen. In diesem Artikel zeigen wir anhand eines Beispiels, wie sich dies in der Praxis auswirkt.\",\"inLanguage\":\"de-DE\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/AfterUpdate_fuer_WPFSteuerelemente_mit_VBNET\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/author\\\/andreminhorst-com\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/author\\\/andreminhorst-com\\\/#author\"},\"datePublished\":\"2023-04-01T00:00:00+00:00\",\"dateModified\":\"-0001-11-30T00:00:00+00:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/#website\",\"url\":\"https:\\\/\\\/vbentwickler.de\\\/\",\"name\":\"Datenbankentwickler\",\"description\":\"Das Magazin f\\u00fcr Datenbankentwickler auf Basis von Visual Studio und Co.\",\"inLanguage\":\"de-DE\",\"publisher\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"AfterUpdate f\u00fcr WPF-Steuerelemente mit VB.NET - Visual Basic Entwickler","description":"Wenn man einfache Anwendungen wie im Artikel \"Standalone-Apps mit .NET programmieren\" beschrieben erstellt, st\u00f6\u00dft man relativ schnell an Grenzen. Eine davon sind die verf\u00fcgbaren Ereignisse f\u00fcr Steuerelemente. Wer einmal mit Access gearbeitet hat, wei\u00df, dass es f\u00fcr jedes Steuerelement ein Ereignis wie \"Nach Aktualisierung\" gibt. Unter WPF ist das nicht der Fall, was an der zugrunde liegenden Philosophie liegt. Diese lautet, dass Benutzeroberfl\u00e4che und Anwendungslogik so weit wie m\u00f6glich getrennt werden sollen. In diesem Artikel zeigen wir anhand eines Beispiels, wie sich dies in der Praxis auswirkt.","canonical_url":"https:\/\/vbentwickler.de\/AfterUpdate_fuer_WPFSteuerelemente_mit_VBNET\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"BlogPosting","@id":"https:\/\/vbentwickler.de\/AfterUpdate_fuer_WPFSteuerelemente_mit_VBNET\/#blogposting","name":"AfterUpdate f\u00fcr WPF-Steuerelemente mit VB.NET - Visual Basic Entwickler","headline":"AfterUpdate f&uuml;r WPF-Steuerelemente mit VB.NET","author":{"@id":"https:\/\/vbentwickler.de\/author\/andreminhorst-com\/#author"},"publisher":{"@id":"https:\/\/vbentwickler.de\/#organization"},"image":{"@type":"ImageObject","url":"http:\/\/vg08.met.vgwort.de\/na\/5142afd48f8d417db88ea78bfaf8dbe7","@id":"https:\/\/vbentwickler.de\/AfterUpdate_fuer_WPFSteuerelemente_mit_VBNET\/#articleImage"},"datePublished":"2023-04-01T00:00:00+00:00","dateModified":"-0001-11-30T00:00:00+00:00","inLanguage":"de-DE","mainEntityOfPage":{"@id":"https:\/\/vbentwickler.de\/AfterUpdate_fuer_WPFSteuerelemente_mit_VBNET\/#webpage"},"isPartOf":{"@id":"https:\/\/vbentwickler.de\/AfterUpdate_fuer_WPFSteuerelemente_mit_VBNET\/#webpage"},"articleSection":"2\/2023, 2023, COM-Add-Ins programmieren, twinBASIC-Programmierung, VB.NET-Programmierung"},{"@type":"BreadcrumbList","@id":"https:\/\/vbentwickler.de\/AfterUpdate_fuer_WPFSteuerelemente_mit_VBNET\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/vbentwickler.de#listItem","position":1,"name":"Home","item":"https:\/\/vbentwickler.de","nextItem":{"@type":"ListItem","@id":"https:\/\/vbentwickler.de\/category\/2023\/#listItem","name":"2023"}},{"@type":"ListItem","@id":"https:\/\/vbentwickler.de\/category\/2023\/#listItem","position":2,"name":"2023","item":"https:\/\/vbentwickler.de\/category\/2023\/","nextItem":{"@type":"ListItem","@id":"https:\/\/vbentwickler.de\/category\/2023\/2\/2023\/#listItem","name":"2\/2023"},"previousItem":{"@type":"ListItem","@id":"https:\/\/vbentwickler.de#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/vbentwickler.de\/category\/2023\/2\/2023\/#listItem","position":3,"name":"2\/2023","item":"https:\/\/vbentwickler.de\/category\/2023\/2\/2023\/","nextItem":{"@type":"ListItem","@id":"https:\/\/vbentwickler.de\/AfterUpdate_fuer_WPFSteuerelemente_mit_VBNET\/#listItem","name":"AfterUpdate f&uuml;r WPF-Steuerelemente mit VB.NET"},"previousItem":{"@type":"ListItem","@id":"https:\/\/vbentwickler.de\/category\/2023\/#listItem","name":"2023"}},{"@type":"ListItem","@id":"https:\/\/vbentwickler.de\/AfterUpdate_fuer_WPFSteuerelemente_mit_VBNET\/#listItem","position":4,"name":"AfterUpdate f&uuml;r WPF-Steuerelemente mit VB.NET","previousItem":{"@type":"ListItem","@id":"https:\/\/vbentwickler.de\/category\/2023\/2\/2023\/#listItem","name":"2\/2023"}}]},{"@type":"Organization","@id":"https:\/\/vbentwickler.de\/#organization","name":"Datenbankentwickler","description":"Das Magazin f\u00fcr Datenbankentwickler auf Basis von Visual Studio und Co.","url":"https:\/\/vbentwickler.de\/","logo":{"@type":"ImageObject","url":"https:\/\/vbentwickler.de\/wp-content\/uploads\/2022\/08\/cropped-header_vbe-1.png","@id":"https:\/\/vbentwickler.de\/AfterUpdate_fuer_WPFSteuerelemente_mit_VBNET\/#organizationLogo","width":664,"height":225},"image":{"@id":"https:\/\/vbentwickler.de\/AfterUpdate_fuer_WPFSteuerelemente_mit_VBNET\/#organizationLogo"}},{"@type":"Person","@id":"https:\/\/vbentwickler.de\/author\/andreminhorst-com\/#author","url":"https:\/\/vbentwickler.de\/author\/andreminhorst-com\/","name":"Andr\u00e9 Minhorst","image":{"@type":"ImageObject","@id":"https:\/\/vbentwickler.de\/AfterUpdate_fuer_WPFSteuerelemente_mit_VBNET\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","width":96,"height":96,"caption":"Andr\u00e9 Minhorst"}},{"@type":"WebPage","@id":"https:\/\/vbentwickler.de\/AfterUpdate_fuer_WPFSteuerelemente_mit_VBNET\/#webpage","url":"https:\/\/vbentwickler.de\/AfterUpdate_fuer_WPFSteuerelemente_mit_VBNET\/","name":"AfterUpdate f\u00fcr WPF-Steuerelemente mit VB.NET - Visual Basic Entwickler","description":"Wenn man einfache Anwendungen wie im Artikel \"Standalone-Apps mit .NET programmieren\" beschrieben erstellt, st\u00f6\u00dft man relativ schnell an Grenzen. Eine davon sind die verf\u00fcgbaren Ereignisse f\u00fcr Steuerelemente. Wer einmal mit Access gearbeitet hat, wei\u00df, dass es f\u00fcr jedes Steuerelement ein Ereignis wie \"Nach Aktualisierung\" gibt. Unter WPF ist das nicht der Fall, was an der zugrunde liegenden Philosophie liegt. Diese lautet, dass Benutzeroberfl\u00e4che und Anwendungslogik so weit wie m\u00f6glich getrennt werden sollen. In diesem Artikel zeigen wir anhand eines Beispiels, wie sich dies in der Praxis auswirkt.","inLanguage":"de-DE","isPartOf":{"@id":"https:\/\/vbentwickler.de\/#website"},"breadcrumb":{"@id":"https:\/\/vbentwickler.de\/AfterUpdate_fuer_WPFSteuerelemente_mit_VBNET\/#breadcrumblist"},"author":{"@id":"https:\/\/vbentwickler.de\/author\/andreminhorst-com\/#author"},"creator":{"@id":"https:\/\/vbentwickler.de\/author\/andreminhorst-com\/#author"},"datePublished":"2023-04-01T00:00:00+00:00","dateModified":"-0001-11-30T00:00:00+00:00"},{"@type":"WebSite","@id":"https:\/\/vbentwickler.de\/#website","url":"https:\/\/vbentwickler.de\/","name":"Datenbankentwickler","description":"Das Magazin f\u00fcr Datenbankentwickler auf Basis von Visual Studio und Co.","inLanguage":"de-DE","publisher":{"@id":"https:\/\/vbentwickler.de\/#organization"}}]},"og:locale":"de_DE","og:site_name":"Visual Basic Entwickler - Das Magazin f\u00fcr Datenbankentwickler auf Basis von Visual Studio und Co.","og:type":"article","og:title":"AfterUpdate f\u00fcr WPF-Steuerelemente mit VB.NET - Visual Basic Entwickler","og:description":"Wenn man einfache Anwendungen wie im Artikel &quot;Standalone-Apps mit .NET programmieren&quot; beschrieben erstellt, st\u00f6\u00dft man relativ schnell an Grenzen. Eine davon sind die verf\u00fcgbaren Ereignisse f\u00fcr Steuerelemente. Wer einmal mit Access gearbeitet hat, wei\u00df, dass es f\u00fcr jedes Steuerelement ein Ereignis wie &quot;Nach Aktualisierung&quot; gibt. Unter WPF ist das nicht der Fall, was an der zugrunde liegenden Philosophie liegt. Diese lautet, dass Benutzeroberfl\u00e4che und Anwendungslogik so weit wie m\u00f6glich getrennt werden sollen. In diesem Artikel zeigen wir anhand eines Beispiels, wie sich dies in der Praxis auswirkt.","og:url":"https:\/\/vbentwickler.de\/AfterUpdate_fuer_WPFSteuerelemente_mit_VBNET\/","og:image":"https:\/\/datenbankentwickler.net\/wp-content\/uploads\/2022\/08\/cropped-header_vbe-1.png","og:image:secure_url":"https:\/\/datenbankentwickler.net\/wp-content\/uploads\/2022\/08\/cropped-header_vbe-1.png","article:published_time":"2023-04-25T16:37:42+00:00","article:modified_time":"-001-11-30T00:00:00+00:00","twitter:card":"summary_large_image","twitter:title":"AfterUpdate f\u00fcr WPF-Steuerelemente mit VB.NET - Visual Basic Entwickler","twitter:description":"Wenn man einfache Anwendungen wie im Artikel &quot;Standalone-Apps mit .NET programmieren&quot; beschrieben erstellt, st\u00f6\u00dft man relativ schnell an Grenzen. Eine davon sind die verf\u00fcgbaren Ereignisse f\u00fcr Steuerelemente. Wer einmal mit Access gearbeitet hat, wei\u00df, dass es f\u00fcr jedes Steuerelement ein Ereignis wie &quot;Nach Aktualisierung&quot; gibt. Unter WPF ist das nicht der Fall, was an der zugrunde liegenden Philosophie liegt. Diese lautet, dass Benutzeroberfl\u00e4che und Anwendungslogik so weit wie m\u00f6glich getrennt werden sollen. In diesem Artikel zeigen wir anhand eines Beispiels, wie sich dies in der Praxis auswirkt.","twitter:image":"https:\/\/datenbankentwickler.net\/wp-content\/uploads\/2022\/08\/cropped-header_vbe-1.png"},"aioseo_meta_data":{"post_id":"55000360","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"limit_modified_date":false,"created":"2024-01-31 04:28:31","updated":"2026-05-16 09:05:14","ai":null,"breadcrumb_settings":null,"seo_analyzer_scan_date":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/vbentwickler.de\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/vbentwickler.de\/category\/2023\/\" title=\"2023\">2023<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/vbentwickler.de\/category\/2023\/2\/2023\/\" title=\"2\/2023\">2\/2023<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tAfterUpdate f\u00fcr WPF-Steuerelemente mit VB.NET\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/vbentwickler.de"},{"label":"2023","link":"https:\/\/vbentwickler.de\/category\/2023\/"},{"label":"2\/2023","link":"https:\/\/vbentwickler.de\/category\/2023\/2\/2023\/"},{"label":"AfterUpdate f&uuml;r WPF-Steuerelemente mit VB.NET","link":"https:\/\/vbentwickler.de\/AfterUpdate_fuer_WPFSteuerelemente_mit_VBNET\/"}],"_links":{"self":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts\/55000360","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/comments?post=55000360"}],"version-history":[{"count":0,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts\/55000360\/revisions"}],"wp:attachment":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/media?parent=55000360"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/categories?post=55000360"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/tags?post=55000360"},{"taxonomy":"yst_prominent_words","embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/yst_prominent_words?post=55000360"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}