{"id":88042017,"date":"2024-04-25T15:50:31","date_gmt":"2024-04-25T15:50:31","guid":{"rendered":"http:\/\/access-basics.de\/index.php\/88042017.html"},"modified":"2024-04-25T15:50:31","modified_gmt":"2024-04-25T15:50:31","slug":"88042017","status":"publish","type":"page","link":"https:\/\/vbentwickler.de\/88042017\/","title":{"rendered":"Visual Basic Entwickler 04\/2017"},"content":{"rendered":"<h3>Basics: ObservableCollection<\/h3>\n<p>Unter WPF gibt es einige Mechanismen, welche die Bindung der Steuerelemente an die zugrunde liegenden Daten in einem gewissen Rahmen automatisieren. Diese werden durch die Programmierung bestimmt \u2013 entweder durch die Verwendung bestimmter Schnittstellen f\u00fcr Eigenschaften oder auch durch entsprechende Auflistungstypen, die dann als Datenquelle etwa f\u00fcr Listen-Elemente verwendet werden. Mit der PropertyChanged-Schnittstelle haben wir schon die Synchronisierung zwischen den Attributen der XAML-Definition und Eigenschaften in den Code-Klassen besprochen (siehe Artikel \u00bbBasics: PropertyChanged\u00ab). In diesem Artikel schauen wir uns nun den Auflistungstyp ObservableCollection an.<\/p>\n<p><a href=\"http:\/\/www.vbentwickler.de\/Basics_ObservableCollection\">Zum Artikel &#8230;<\/a><\/p>\n<h3>Type Converter in WPF\/C#<\/h3>\n<p>Manche Eigenschaften eines .xaml-Dokuments sind sehr flexibel. F\u00fcr die Eigenschaft Margin beispielsweise k\u00f6nnen Sie ganz verschiedenen Werte angeben \u2013 zum Beispiel einfach den Wert 5, um Abst\u00e4nde in alle vier Richtungen zu erhalten oder auch die Zeichenkette 5,0,5,0, um nur einen linken und einen rechten Abstand abzubilden. Auch andere Eigenschaften nehmen durchaus unterschiedliche Werte entgegen, zum Beispiel solche zur Angabe von Farben. Wenn man genauer hinsieht, stellt man schnell fest, dass man da Attributen, die v\u00f6llig anderen Typs sind, ein String-Literal zuweist. Warum das hier gelingt, beschreibt der vorliegende Artikel.<\/p>\n<p><a href=\"http:\/\/www.vbentwickler.de\/Type_Converter_in_WPFC#\">Zum Artikel &#8230;<\/a><\/p>\n<h3>Fehlerhafte Bindungen pr\u00fcfen<\/h3>\n<p>Wenn Sie mit C# programmieren, k\u00f6nnen Sie beim Debuggen bequem herausfinden, warum etwas nicht so funktioniert, wie Sie es sich vorstellen. Bei der Datenbindung von WPF-Elementen wird es komplizierter: Wenn etwa ein an ein Feld eines Objekts gebundenes Steuerelement nicht den gew\u00fcnschten Wert anzeigt, kann dies verschiedene Gr\u00fcnde haben. Wenn das gebundene Element nicht gefunden werden kann, gibt es keine Fehlermeldung, und es wird auch schwierig, herauszufinden, woran es liegt. Dieser Artikel stellt ein paar M\u00f6glichkeiten vor, Licht ins Dunkel der Bindung zu bringen.<\/p>\n<p><a href=\"http:\/\/www.vbentwickler.de\/Fehlerhafte_Bindungen_pruefen\">Zum Artikel &#8230;<\/a><\/p>\n<h3>Neuer Eintrag in ComboBox<\/h3>\n<p>Manchmal zeigen Kombinationsfelder einfach nur die verkn\u00fcpften Werte einer Lookup-Tabelle an \u2013 wie beispielsweise bei der Kategorie eines Produktes. Die Tabelle mit den Produkten ist dann \u00fcber ein Fremdschl\u00fcsselfeld mit der Lookup-Tabelle mit den Kategorien verkn\u00fcpft, wor\u00fcber dann die gew\u00fcnschte Kategorie ausgew\u00e4hlt wird. Was aber, wenn man mal eben einen neuen Wert in die Lookup-Tabelle schreiben will? L\u00e4sst sich das \u00fcberhaupt erledigen, ohne dass der Benutzer einen Dialog zur Eingabe der Daten der neuen Kategorie \u00f6ffnet? Dieser Artikel bringt die Antwort auf diese Frage.<\/p>\n<p><a href=\"http:\/\/www.vbentwickler.de\/Neuer_Eintrag_in_ComboBox\">Zum Artikel &#8230;<\/a><\/p>\n<h3>m:n-Beziehung mit Listenfeld<\/h3>\n<p>Wir haben in der Beispieldatenbank Bestellverwaltung bereits eine m:n-Beziehung \u00fcber ein Fenster realisiert, das an eine Tabelle gebunden ist und ein DataGrid enth\u00e4lt, das die verkn\u00fcpfte Elemente anzeigt. Dabei handelt es sich um die Abbildung von Bestellungen, Bestelldetails und Produkte, wo zus\u00e4tzlich zur Verkn\u00fcpfung noch weitere Daten wie der Einzelpreis f\u00fcr die Bestellposition gespeichert werden. Im vorliegenden Artikel werden wir uns ansehen, wie wir eine m:n-Beziehung ohne weitere Daten in der Verkn\u00fcpfungstabelle verwalten k\u00f6nnen. Dazu wollen wir Kunden \u00fcber eine Verkn\u00fcpfungstabelle einer Tabelle mit Versendungen etwa zu Werbe- oder Informationszwecken verkn\u00fcpfen.<\/p>\n<p><a href=\"http:\/\/www.vbentwickler.de\/mnBeziehung_mit_Listenfeld\">Zum Artikel &#8230;<\/a><\/p>\n<h3>LINQ to Entities-Beispiele in der Methodensyntax<\/h3>\n<p>LINQ to Entities ist die Abfragesprache f\u00fcr den Zugriff auf Daten in den Entit\u00e4ten eines Entity Data Models. Im vorliegenden Artikel sehen wir uns einige Beispiele f\u00fcr den Zugriff per LINQ auf die Daten unserer Beispielanwendung \u00bbBestellverwaltung\u00ab an. Dabei verwenden wir in diesem Artikel die Methoden-Syntax von LINQ.<\/p>\n<p><a href=\"http:\/\/www.vbentwickler.de\/LINQ_to_EntitiesBeispiele_in_der_Methodensyntax\">Zum Artikel &#8230;<\/a><\/p>\n<h3>EDM: SQLite aktuell halten<\/h3>\n<p>SQLite erscheint regelm\u00e4\u00dfig in neuen Versionen. Das betrifft sowohl die NuGet-Pakete als auch die Komponenten, die f\u00fcr die Arbeit in Visual Studio wichtig sind. Wenn Sie nicht beide auf dem gleichen Stand halten, sind Probleme vorprogrammiert. Dieser Artikel beschreibt, welche Schritte zu beachten sind.<\/p>\n<p><a href=\"http:\/\/www.vbentwickler.de\/EDM_SQLite_aktuell_halten\">Zum Artikel &#8230;<\/a><\/p>\n<h3>EDM: Backend \u00e4ndern<\/h3>\n<p>Unsere aktuellen Beispieldatenbanken haben ein WPF\/C#-Frontend, ein SQLite-Backend und das Entity Data Model als Zwischenschicht. Was geschieht nun, wenn wir einmal die Datenbank \u00e4ndern wollen \u2013 etwa, weil wir neue Tabellen oder neue Felder in bestehenden Tabellen ben\u00f6tigen? Wie ist die genaue Vorgehensweise, die auch ber\u00fccksichtigt, dass der Benutzer eine neue Version installieren m\u00f6chte, ohne die bereits im vorhandenen Backend gespeicherten Daten zu verlieren? Wie dies gelingt, zeigt der vorliegende Artikel.<\/p>\n<p><a href=\"http:\/\/www.vbentwickler.de\/EDM_Backend_aendern\">Zum Artikel &#8230;<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Basics: ObservableCollection Unter WPF gibt es einige Mechanismen, welche die Bindung der Steuerelemente an die zugrunde liegenden Daten in einem gewissen Rahmen automatisieren. Diese werden durch die Programmierung bestimmt \u2013 entweder durch die Verwendung bestimmter<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","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":""},"yst_prominent_words":[],"class_list":["post-88042017","page","type-page","status-publish","hentry"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/pages\/88042017","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/comments?post=88042017"}],"version-history":[{"count":0,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/pages\/88042017\/revisions"}],"wp:attachment":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/media?parent=88042017"}],"wp:term":[{"taxonomy":"yst_prominent_words","embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/yst_prominent_words?post=88042017"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}