{"id":55000050,"date":"2016-08-01T00:00:00","date_gmt":"2020-03-27T19:21:41","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=50"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"WPFEDM_Kundenuebersicht","status":"publish","type":"post","link":"https:\/\/vbentwickler.de\/WPFEDM_Kundenuebersicht\/","title":{"rendered":"WPF\/EDM: Kunden&uuml;bersicht"},"content":{"rendered":"<p><b>WPF-Fenster k&ouml;nnen zwar auch Daten ADO.NET-Datenquellen anzeigen, aber optimal sind sie f&uuml;r den Zugriff auf Daten aus einem Entity Data Model vorbereitet. Dieser Artikel zeigt, wie Sie die per Entity Data Model abgebildeten Daten aus einer Haupt- und einer Lookup-Tabelle in einem WPF-Fenster anzeigen. Dabei soll das Fenster die Navigation durch die Datens&auml;tze und auch das Anlegen neuer Datens&auml;tze erm&ouml;glichen. Im Vergleich zu einem fr&uuml;heren Artikel zeigen wir nun, wie Sie die Aufgabe manuell erledigen, also ohne die Unterst&uuml;tzung von Assistenten.<\/b><\/p>\n<p>Um eine datenbankbasierte WPF-Anwendung zu erstellen, legen Sie zun&auml;chst ein neues Projekt auf Basis der Vorlage Visual C#|WPF-Anwendung an.<\/p>\n<p>Dann f&uuml;gen Sie ein Entity Data Model auf Basis unserer Beispieldatenbank Bestellverwaltung hinzu, wie es im Artikel Entity Data Model f&uuml;r eine Datenbank erstellen im Detail beschrieben wird. Hier die Kurzform ohne Screenshots und Umwege:<\/p>\n<ul>\n<li>Bet&auml;tigen Sie die Tastenkombination Strg + Umschalt + A und w&auml;hlen Sie im Dialog Neues Element hinzuf&uuml;gen den Eintrag ADO.NET Entity Data Model aus. Geben Sie als Name BestellverwaltungModel an und klicken Sie auf Hinzuf&uuml;gen.<\/li>\n<li>Behalten Sie im Dialog Assistent f&uuml;r Entity Data Model den Wert EF Designer aus Datenbank bei und klicken Sie auf Weiter.<\/li>\n<li>Klicken Sie unter W&auml;hlen Sie Ihre Datenbankverbindung aus auf Neue Verbindung &#8230; und w&auml;hlen Sie dort Microsoft SQL Server aus.<\/li>\n<li>Geben Sie im Dialog Verbindungseigenschaften den Servernamen ein (zum Beispiel (localdb)\\v11.0 oder (localdb)\\mssqllocaldb, wenn Sie LocalDB verwenden).<\/li>\n<li>W&auml;hlen Sie die Datenbank aus oder geben Sie die anzuh&auml;ngende Datenbankdatei an. Testen Sie die Verbindung und klicken Sie auf OK.<\/li>\n<li>Zur&uuml;ck im Assistent f&uuml;r Entity Data Model best&auml;tigen Sie den Namen f&uuml;r die Verbindungseinstellungen (hier BestellverwaltungEntities).<\/li>\n<li>Wenn Sie m&ouml;chten, best&auml;tigen Sie die Frage, ob Sie die Datenbankdatei zum Projekt hinzuf&uuml;gen m&ouml;chten.<\/li>\n<li>Behalten Sie Entity Framework 6.x als Version bei.<\/li>\n<li>W&auml;hlen Sie alle gew&uuml;nschten Tabellen aus und geben Sie den Namen f&uuml;r den Modellnamespace an (hier BestellverwaltungModel).<\/li>\n<li>Klicken Sie auf Fertigstellen. Das Entity Data Model wird nun erstellt.<\/li>\n<\/ul>\n<p>Nun nehmen Sie noch eventuell n&ouml;tige &Auml;nderungen an den Namen der Entit&auml;ten oder den Namen der Entit&auml;tsmengen vor. Die Beispieldatenbank verwendet Tabellen mit Namen im Singular. Sie sollten daher die Eigenschaft Name der Entit&auml;tenmenge f&uuml;r alle Entit&auml;ten &uuml;ber das Modelldiagramm (hier Bestellverwaltungmodel.edmx) auf die Pluralform einstellen (also Kategorien statt Kategorie und so weiter). Anschlie&szlig;endes Speichern aktualisiert den Code. F&uuml;r dieses Beispiel arbeiten wir mit den Tabellen Kunden und Anreden, wobei wir als Namen f&uuml;r die Entit&auml;tenmengen die Namen Kunden und Anreden &uuml;bernehmen und die Entit&auml;tsklassen selbst mit Kunde und Anrede benennen.<\/p>\n<p>Um die Namen der Entit&auml;tsklassen anzupassen, &ouml;ffnen Sie die Datei BestellverwaltungModel.edmx, markieren nacheinander die Entit&auml;ten und &auml;ndern die Bezeichnungen der Entit&auml;ten von Singular auf Plural (siehe Bild 1). Speichern nicht vergessen, um die &Auml;nderungen auf den Code zu &uuml;bertragen &#8211; dies kann ein paar Sekunden dauern.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2016_04\/pic_50_001.png\" alt=\"&Auml;ndern der Entit&auml;tsnamen\" width=\"349,7625\" height=\"214,9143\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 1: &Auml;ndern der Entit&auml;tsnamen<\/span><\/b><\/p>\n<h2>Kunden im DataGrid<\/h2>\n<p>Als Erstes wollen wir die Kunden der Tabelle Kunden im DataGrid anbieten. Dieses Datagrid legen wir in einem neuen Fenster namens KundenuebersichtEinfach an, das Sie per Strg + Umschalt + A und Auswahl des Eintrags Fenster sowie Angabe der Bezeichnung KundenuebersichtEinfach anlegen.<\/p>\n<p>Um dieses Fenster vom Fenster MainWindow.xaml aus zu &ouml;ffnen, f&uuml;gen wir diesem eine neue Schaltfl&auml;che namens btnKundenuebersichtEinfach hinzu:<\/p>\n<pre>&lt;Button x:Name=\"btnKundenuebersichtEinfach\" Content=\"Kunden&uuml;bersicht einfach\" HorizontalAlignment=\"Left\" Margin=\"31,20,0,0\" VerticalAlignment=\"Top\" Width=\"143\" Click=\"btnKundenuebersichtEinfach_Click\"\/&gt;<\/pre>\n<p>F&uuml;r die Eigenschaft Click hinterlegen wir eine Methode, die wie folgt aussieht:<\/p>\n<pre>private void btnKundenuebersichtEinfach_Click(\r\n                        object sender, RoutedEventArgs e) {\r\n     KundenuebersichtEinfach wnd = \r\n                             new KundenuebersichtEinfach();\r\n     wnd.Show();\r\n}<\/pre>\n<h2>Kunden anzeigen &#8211; einfache Variante<\/h2>\n<p>Dem Fenster <b>KundenuebersichtEinfach <\/b>f&uuml;gen Sie nun das <b>Data-grid<\/b>-Steuerelement hinzu, welches die Felder der Tabelle <b>Kunden <\/b>anzeigen soll. Der XAML-Code sieht dann etwa wie folgt aus:<\/p>\n<pre>&lt;Window x:Class=\"Bestellverwaltung_EDM.Kundenuebersicht\" ...\r\n         Title=\"Kundenuebersicht\" Height=\"300\" Width=\"600\"&gt;\r\n     &lt;Grid&gt;\r\n         &lt;DataGrid x:Name=\"dgKunden\" \r\n            HorizontalAlignment=\"Left\" Margin=\"10,10,10,10\" \r\n            VerticalAlignment=\"Top\" \/&gt;\r\n     &lt;\/Grid&gt;\r\n&lt;\/Window&gt;<\/pre>\n<p>Sie sehen hier keinerlei Datenbindungseigenschaften. Dies erledigen wir direkt vom Code aus. Der komplette Code der Klasse sieht so aus:<\/p>\n<pre>using System.Linq;\r\nusing System.Windows;\r\nnamespace Bestellverwaltung_EDM {\r\n     public partial class KundenuebersichtEinfach : Window {\r\n         public KundenuebersichtEinfach() {\r\n             InitializeComponent();\r\n             using (BestellverwaltungEntities DBContext = \r\n                         new BestellverwaltungEntities()) {\r\n                 var kunden = DBContext.Kunden.ToList();\r\n                 dgKunden.ItemsSource = kunden;\r\n             };\r\n         }\r\n     }\r\n}<\/pre>\n<p>Hier verwenden wir die im Artikel <b>LINQ to Entities: Daten abfragen <\/b>ausf&uuml;hrlich erl&auml;uterten Techniken, um die Daten aus einer Tabelle &uuml;ber das Entity Data Model in eine Variable zu f&uuml;llen. Dazu erstellen wir einen Datenbank-Kontext des Typs <b>BestellverwaltungEntities<\/b>. Dieses bietet die Entit&auml;tsauflistung <b>Kunden<\/b>, die wir mit der <b>ToList<\/b>-Methode in eine Liste f&uuml;llen und an die Variable <b>kunden <\/b>&uuml;bergeben. Diese landet schlie&szlig;lich &uuml;ber die Eigenschaft <b>ItemsSource <\/b>im DataGrid:<\/p>\n<pre>using (BestellverwaltungEntities DBContext = \r\n              new BestellverwaltungEntities()) {\r\n     var kunden = DBContext.Kunden.ToList();\r\n     dgKunden.ItemsSource = kunden;\r\n};<\/pre>\n<p>Das Ergebnis sehen Sie in Bild 2. Weil das Attribut <b>AutoGenerateColumns <\/b>in der XAML-Definition des <b>DataGrid<\/b>-Steuerelements nicht explizit gesetzt wurde, hat dieses den Standardwert <b>True<\/b>, was dazu f&uuml;hrt, dass alle Felder der Datenquelle im <b>DataGrid<\/b>-Steuerelement abgebildet werden. Da wir die Daten mit der Methode <b>ToList() <\/b>in die Variable <b>kunden <\/b>geschrieben haben, werden die verkn&uuml;pften Objekte <b>Anreden <\/b>und <b>Bestellungen <\/b>nicht gef&uuml;llt. Damit k&ouml;nnen Sie nun bereits die &uuml;blichen Aktionen wie etwa das Sortieren durchf&uuml;hren, aber es werden noch nicht einmal die Anreden angezeigt, sondern nur die Werte des Feldes <b>AnredeID <\/b>&#8211; und die beiden verkn&uuml;pften Eigenschaften <b>Anreden <\/b>und <b>Bestellungen <\/b>wollen wir auch loswerden.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2016_04\/pic_50_002.png\" alt=\"Erster Entwurf des DataGrid-Steuerelements mit Kundendaten\" width=\"499,3704\" height=\"284,1078\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 2: Erster Entwurf des DataGrid-Steuerelements mit Kundendaten<\/span><\/b><\/p>\n<h2>Manuelle Definition der anzuzeigenden Felder<\/h2>\n<p>Wie wir oben beschrieben haben, werden die Felder aktuell angezeigt, weil die Option <b>AutoGenerateColumns <\/b>f&uuml;r das <b>DataGrid<\/b>-Steuerelement aktiviert ist. Wir wollen aber individuelle Einstellungen f&uuml;r die angezeigten Daten vornehmen. Daher deaktivieren wir zun&auml;chst mit dem Attribut <b>AutoGenerateColumns=&#8221;False&#8221; <\/b>die automatische Generierung. Au&szlig;erdem definieren wir selbst die anzuzeigenden Spalten und deren Spalten&uuml;berschriften und Inhalte. Dies sieht dann wie in der Definition aus Listing 1 aus, wo wir f&uuml;r Spalten jeweils ein Element des Typs <b>DataGridTextColumn <\/b>verwenden. Als Datenbindung geben wir f&uuml;r die Eigenschaft <b>Binding <\/b>jeweils Werte wie <b>{Binding ID} <\/b>an.<\/p>\n<pre>&lt;Window x:Class=\"Bestellverwaltung_EDM.Kundenuebersicht_Columns\" ... \r\n                                                               Title=\"Kundenuebersicht_Columns\" Height=\"300\" Width=\"600\"&gt;\r\n     &lt;Grid&gt;\r\n         &lt;DataGrid x:Name=\"dgKunden\" HorizontalAlignment=\"Left\" Margin=\"10,10,10,10\" VerticalAlignment=\"Top\" \r\n                                                                                             AutoGenerateColumns=\"False\"&gt;\r\n             &lt;DataGrid.Columns&gt;\r\n                 &lt;DataGridTextColumn Header=\"ID\" Binding=\"{Binding ID}\" Width=\"30\"&gt;&lt;\/DataGridTextColumn&gt;\r\n                 &lt;DataGridTextColumn Header=\"Firma\" Binding=\"{Binding Firma}\" Width=\"*\"&gt;&lt;\/DataGridTextColumn&gt;\r\n                 &lt;DataGridTextColumn Header=\"Anrede\" Binding=\"{Binding Anrede}\" Width=\"50\"&gt;&lt;\/DataGridTextColumn&gt;\r\n                 &lt;DataGridTextColumn Header=\"Vorname\" Binding=\"{Binding Vorname}\" Width=\"*\"&gt;&lt;\/DataGridTextColumn&gt;\r\n                 &lt;DataGridTextColumn Header=\"Nachname\" Binding=\"{Binding Nachname}\" Width=\"*\"&gt;&lt;\/DataGridTextColumn&gt;\r\n                 &lt;DataGridTextColumn Header=\"Stra&szlig;e\" Binding=\"{Binding Strasse}\" Width=\"*\"&gt;&lt;\/DataGridTextColumn&gt;\r\n                 &lt;DataGridTextColumn Header=\"PLZ\" Binding=\"{Binding PLZ}\" Width=\"*\"&gt;&lt;\/DataGridTextColumn&gt;\r\n                 &lt;DataGridTextColumn Header=\"Ort\" Binding=\"{Binding Ort}\" Width=\"*\"&gt;&lt;\/DataGridTextColumn&gt;\r\n             &lt;\/DataGrid.Columns&gt;\r\n         &lt;\/DataGrid&gt;\r\n     &lt;\/Grid&gt;\r\n&lt;\/Window&gt;<\/pre>\n<p><b><span style=\"color:darkgrey;\">Listing 1: Benutzerdefinierte Festlegung der Spalten <\/span><\/b><\/p>\n<p>Den Code dieses Beispiels finden Sie im Fenster <b>Kundenuebersicht_Columns.xaml<\/b>. Die Ansicht entspricht weitgehend der aus dem ersten Beispiel.<\/p>\n<h2>Kunden per Eigenschaft f&uuml;llen<\/h2>\n<p>Nun gehen wir einen Schritt weiter: Bisher haben wir die Datenquelle im C#-Code im Code behind-Modul f&uuml;r die Eigenschaft ItemsSource angegeben. Nun wollen wir die Zuweisung in den XAML-Code verschieben. All dies erledigen wir in dem Beispielfenster <b>KundenuebersichtBinding.xaml<\/b>. Warum wollen wir die folgende Zeile gern aus dem Code behind-Modul heraushaben<\/p>\n<pre>dgKunden.ItemsSource = kunden;<\/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\/55000050\/\">\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\/55000050?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\/55000050\/\"\/>\n\t\t\t\t\t\t\t\t<input type=\"hidden\" name=\"rcp_login_nonce\" value=\"b84fcebbe5\"\/>\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>WPF-Fenster k&ouml;nnen zwar auch Daten ADO.NET-Datenquellen anzeigen, aber optimal sind sie f&uuml;r den Zugriff auf Daten aus einem Entity Data Model vorbereitet. Dieser Artikel zeigt, wie Sie die per Entity Data Model abgebildeten Daten aus einer Haupt- und einer Lookup-Tabelle in einem WPF-Fenster anzeigen. Dabei soll das Fenster die Navigation durch die Datens&auml;tze und auch das Anlegen neuer Datens&auml;tze erm&ouml;glichen. Im Vergleich zu einem fr&uuml;heren Artikel zeigen wir nun, wie Sie die Aufgabe manuell erledigen, also ohne die Unterst&uuml;tzung von Assistenten.<\/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":[662016,66042016,44000002,44000007],"tags":[],"yst_prominent_words":[],"class_list":["post-55000050","post","type-post","status-publish","format-standard","hentry","category-662016","category-66042016","category-Benutzeroberflaeche_mit_WPF","category-Von_Access_zu_WPF"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.8 - aioseo.com -->\n\t<meta name=\"description\" content=\"WPF-Fenster k\u00f6nnen zwar auch Daten ADO.NET-Datenquellen anzeigen, aber optimal sind sie f\u00fcr den Zugriff auf Daten aus einem Entity Data Model vorbereitet. Dieser Artikel zeigt, wie Sie die per Entity Data Model abgebildeten Daten aus einer Haupt- und einer Lookup-Tabelle in einem WPF-Fenster anzeigen. Dabei soll das Fenster die Navigation durch die Datens\u00e4tze und auch das Anlegen neuer Datens\u00e4tze erm\u00f6glichen. Im Vergleich zu einem fr\u00fcheren Artikel zeigen wir nun, wie Sie die Aufgabe manuell erledigen, also ohne die Unterst\u00fctzung von Assistenten.\" \/>\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\/WPFEDM_Kundenuebersicht\/\" \/>\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=\"WPF\/EDM: Kunden\u00fcbersicht - Visual Basic Entwickler\" \/>\n\t\t<meta property=\"og:description\" content=\"WPF-Fenster k\u00f6nnen zwar auch Daten ADO.NET-Datenquellen anzeigen, aber optimal sind sie f\u00fcr den Zugriff auf Daten aus einem Entity Data Model vorbereitet. Dieser Artikel zeigt, wie Sie die per Entity Data Model abgebildeten Daten aus einer Haupt- und einer Lookup-Tabelle in einem WPF-Fenster anzeigen. Dabei soll das Fenster die Navigation durch die Datens\u00e4tze und auch das Anlegen neuer Datens\u00e4tze erm\u00f6glichen. Im Vergleich zu einem fr\u00fcheren Artikel zeigen wir nun, wie Sie die Aufgabe manuell erledigen, also ohne die Unterst\u00fctzung von Assistenten.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/vbentwickler.de\/WPFEDM_Kundenuebersicht\/\" \/>\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=\"2020-03-27T19:21:41+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=\"WPF\/EDM: Kunden\u00fcbersicht - Visual Basic Entwickler\" \/>\n\t\t<meta name=\"twitter:description\" content=\"WPF-Fenster k\u00f6nnen zwar auch Daten ADO.NET-Datenquellen anzeigen, aber optimal sind sie f\u00fcr den Zugriff auf Daten aus einem Entity Data Model vorbereitet. Dieser Artikel zeigt, wie Sie die per Entity Data Model abgebildeten Daten aus einer Haupt- und einer Lookup-Tabelle in einem WPF-Fenster anzeigen. Dabei soll das Fenster die Navigation durch die Datens\u00e4tze und auch das Anlegen neuer Datens\u00e4tze erm\u00f6glichen. Im Vergleich zu einem fr\u00fcheren Artikel zeigen wir nun, wie Sie die Aufgabe manuell erledigen, also ohne die Unterst\u00fctzung von Assistenten.\" \/>\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\\\/WPFEDM_Kundenuebersicht\\\/#blogposting\",\"name\":\"WPF\\\/EDM: Kunden\\u00fcbersicht - Visual Basic Entwickler\",\"headline\":\"WPF\\\/EDM: Kunden&uuml;bersicht\",\"author\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/author\\\/andreminhorst-com\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/#organization\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"..\\\/fileadmin\\\/_temp_\\\/2016_04\\\/pic_50_001.png\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/WPFEDM_Kundenuebersicht\\\/#articleImage\"},\"datePublished\":\"2016-08-01T00:00:00+00:00\",\"dateModified\":\"-0001-11-30T00:00:00+00:00\",\"inLanguage\":\"de-DE\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/WPFEDM_Kundenuebersicht\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/WPFEDM_Kundenuebersicht\\\/#webpage\"},\"articleSection\":\"2016, 4\\\/2016, Benutzeroberfl\\u00e4che mit WPF, Von Access zu WPF\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/WPFEDM_Kundenuebersicht\\\/#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\\\/2016\\\/#listItem\",\"name\":\"2016\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/category\\\/2016\\\/#listItem\",\"position\":2,\"name\":\"2016\",\"item\":\"https:\\\/\\\/vbentwickler.de\\\/category\\\/2016\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/category\\\/2016\\\/4\\\/2016\\\/#listItem\",\"name\":\"4\\\/2016\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/category\\\/2016\\\/4\\\/2016\\\/#listItem\",\"position\":3,\"name\":\"4\\\/2016\",\"item\":\"https:\\\/\\\/vbentwickler.de\\\/category\\\/2016\\\/4\\\/2016\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/WPFEDM_Kundenuebersicht\\\/#listItem\",\"name\":\"WPF\\\/EDM: Kunden&uuml;bersicht\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/category\\\/2016\\\/#listItem\",\"name\":\"2016\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/WPFEDM_Kundenuebersicht\\\/#listItem\",\"position\":4,\"name\":\"WPF\\\/EDM: Kunden&uuml;bersicht\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/category\\\/2016\\\/4\\\/2016\\\/#listItem\",\"name\":\"4\\\/2016\"}}]},{\"@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\\\/WPFEDM_Kundenuebersicht\\\/#organizationLogo\",\"width\":664,\"height\":225},\"image\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/WPFEDM_Kundenuebersicht\\\/#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\\\/WPFEDM_Kundenuebersicht\\\/#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\\\/WPFEDM_Kundenuebersicht\\\/#webpage\",\"url\":\"https:\\\/\\\/vbentwickler.de\\\/WPFEDM_Kundenuebersicht\\\/\",\"name\":\"WPF\\\/EDM: Kunden\\u00fcbersicht - Visual Basic Entwickler\",\"description\":\"WPF-Fenster k\\u00f6nnen zwar auch Daten ADO.NET-Datenquellen anzeigen, aber optimal sind sie f\\u00fcr den Zugriff auf Daten aus einem Entity Data Model vorbereitet. Dieser Artikel zeigt, wie Sie die per Entity Data Model abgebildeten Daten aus einer Haupt- und einer Lookup-Tabelle in einem WPF-Fenster anzeigen. Dabei soll das Fenster die Navigation durch die Datens\\u00e4tze und auch das Anlegen neuer Datens\\u00e4tze erm\\u00f6glichen. Im Vergleich zu einem fr\\u00fcheren Artikel zeigen wir nun, wie Sie die Aufgabe manuell erledigen, also ohne die Unterst\\u00fctzung von Assistenten.\",\"inLanguage\":\"de-DE\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/WPFEDM_Kundenuebersicht\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/author\\\/andreminhorst-com\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/author\\\/andreminhorst-com\\\/#author\"},\"datePublished\":\"2016-08-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":"WPF\/EDM: Kunden\u00fcbersicht - Visual Basic Entwickler","description":"WPF-Fenster k\u00f6nnen zwar auch Daten ADO.NET-Datenquellen anzeigen, aber optimal sind sie f\u00fcr den Zugriff auf Daten aus einem Entity Data Model vorbereitet. Dieser Artikel zeigt, wie Sie die per Entity Data Model abgebildeten Daten aus einer Haupt- und einer Lookup-Tabelle in einem WPF-Fenster anzeigen. Dabei soll das Fenster die Navigation durch die Datens\u00e4tze und auch das Anlegen neuer Datens\u00e4tze erm\u00f6glichen. Im Vergleich zu einem fr\u00fcheren Artikel zeigen wir nun, wie Sie die Aufgabe manuell erledigen, also ohne die Unterst\u00fctzung von Assistenten.","canonical_url":"https:\/\/vbentwickler.de\/WPFEDM_Kundenuebersicht\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"BlogPosting","@id":"https:\/\/vbentwickler.de\/WPFEDM_Kundenuebersicht\/#blogposting","name":"WPF\/EDM: Kunden\u00fcbersicht - Visual Basic Entwickler","headline":"WPF\/EDM: Kunden&uuml;bersicht","author":{"@id":"https:\/\/vbentwickler.de\/author\/andreminhorst-com\/#author"},"publisher":{"@id":"https:\/\/vbentwickler.de\/#organization"},"image":{"@type":"ImageObject","url":"..\/fileadmin\/_temp_\/2016_04\/pic_50_001.png","@id":"https:\/\/vbentwickler.de\/WPFEDM_Kundenuebersicht\/#articleImage"},"datePublished":"2016-08-01T00:00:00+00:00","dateModified":"-0001-11-30T00:00:00+00:00","inLanguage":"de-DE","mainEntityOfPage":{"@id":"https:\/\/vbentwickler.de\/WPFEDM_Kundenuebersicht\/#webpage"},"isPartOf":{"@id":"https:\/\/vbentwickler.de\/WPFEDM_Kundenuebersicht\/#webpage"},"articleSection":"2016, 4\/2016, Benutzeroberfl\u00e4che mit WPF, Von Access zu WPF"},{"@type":"BreadcrumbList","@id":"https:\/\/vbentwickler.de\/WPFEDM_Kundenuebersicht\/#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\/2016\/#listItem","name":"2016"}},{"@type":"ListItem","@id":"https:\/\/vbentwickler.de\/category\/2016\/#listItem","position":2,"name":"2016","item":"https:\/\/vbentwickler.de\/category\/2016\/","nextItem":{"@type":"ListItem","@id":"https:\/\/vbentwickler.de\/category\/2016\/4\/2016\/#listItem","name":"4\/2016"},"previousItem":{"@type":"ListItem","@id":"https:\/\/vbentwickler.de#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/vbentwickler.de\/category\/2016\/4\/2016\/#listItem","position":3,"name":"4\/2016","item":"https:\/\/vbentwickler.de\/category\/2016\/4\/2016\/","nextItem":{"@type":"ListItem","@id":"https:\/\/vbentwickler.de\/WPFEDM_Kundenuebersicht\/#listItem","name":"WPF\/EDM: Kunden&uuml;bersicht"},"previousItem":{"@type":"ListItem","@id":"https:\/\/vbentwickler.de\/category\/2016\/#listItem","name":"2016"}},{"@type":"ListItem","@id":"https:\/\/vbentwickler.de\/WPFEDM_Kundenuebersicht\/#listItem","position":4,"name":"WPF\/EDM: Kunden&uuml;bersicht","previousItem":{"@type":"ListItem","@id":"https:\/\/vbentwickler.de\/category\/2016\/4\/2016\/#listItem","name":"4\/2016"}}]},{"@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\/WPFEDM_Kundenuebersicht\/#organizationLogo","width":664,"height":225},"image":{"@id":"https:\/\/vbentwickler.de\/WPFEDM_Kundenuebersicht\/#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\/WPFEDM_Kundenuebersicht\/#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\/WPFEDM_Kundenuebersicht\/#webpage","url":"https:\/\/vbentwickler.de\/WPFEDM_Kundenuebersicht\/","name":"WPF\/EDM: Kunden\u00fcbersicht - Visual Basic Entwickler","description":"WPF-Fenster k\u00f6nnen zwar auch Daten ADO.NET-Datenquellen anzeigen, aber optimal sind sie f\u00fcr den Zugriff auf Daten aus einem Entity Data Model vorbereitet. Dieser Artikel zeigt, wie Sie die per Entity Data Model abgebildeten Daten aus einer Haupt- und einer Lookup-Tabelle in einem WPF-Fenster anzeigen. Dabei soll das Fenster die Navigation durch die Datens\u00e4tze und auch das Anlegen neuer Datens\u00e4tze erm\u00f6glichen. Im Vergleich zu einem fr\u00fcheren Artikel zeigen wir nun, wie Sie die Aufgabe manuell erledigen, also ohne die Unterst\u00fctzung von Assistenten.","inLanguage":"de-DE","isPartOf":{"@id":"https:\/\/vbentwickler.de\/#website"},"breadcrumb":{"@id":"https:\/\/vbentwickler.de\/WPFEDM_Kundenuebersicht\/#breadcrumblist"},"author":{"@id":"https:\/\/vbentwickler.de\/author\/andreminhorst-com\/#author"},"creator":{"@id":"https:\/\/vbentwickler.de\/author\/andreminhorst-com\/#author"},"datePublished":"2016-08-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":"WPF\/EDM: Kunden\u00fcbersicht - Visual Basic Entwickler","og:description":"WPF-Fenster k\u00f6nnen zwar auch Daten ADO.NET-Datenquellen anzeigen, aber optimal sind sie f\u00fcr den Zugriff auf Daten aus einem Entity Data Model vorbereitet. Dieser Artikel zeigt, wie Sie die per Entity Data Model abgebildeten Daten aus einer Haupt- und einer Lookup-Tabelle in einem WPF-Fenster anzeigen. Dabei soll das Fenster die Navigation durch die Datens\u00e4tze und auch das Anlegen neuer Datens\u00e4tze erm\u00f6glichen. Im Vergleich zu einem fr\u00fcheren Artikel zeigen wir nun, wie Sie die Aufgabe manuell erledigen, also ohne die Unterst\u00fctzung von Assistenten.","og:url":"https:\/\/vbentwickler.de\/WPFEDM_Kundenuebersicht\/","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":"2020-03-27T19:21:41+00:00","article:modified_time":"-001-11-30T00:00:00+00:00","twitter:card":"summary_large_image","twitter:title":"WPF\/EDM: Kunden\u00fcbersicht - Visual Basic Entwickler","twitter:description":"WPF-Fenster k\u00f6nnen zwar auch Daten ADO.NET-Datenquellen anzeigen, aber optimal sind sie f\u00fcr den Zugriff auf Daten aus einem Entity Data Model vorbereitet. Dieser Artikel zeigt, wie Sie die per Entity Data Model abgebildeten Daten aus einer Haupt- und einer Lookup-Tabelle in einem WPF-Fenster anzeigen. Dabei soll das Fenster die Navigation durch die Datens\u00e4tze und auch das Anlegen neuer Datens\u00e4tze erm\u00f6glichen. Im Vergleich zu einem fr\u00fcheren Artikel zeigen wir nun, wie Sie die Aufgabe manuell erledigen, also ohne die Unterst\u00fctzung von Assistenten.","twitter:image":"https:\/\/datenbankentwickler.net\/wp-content\/uploads\/2022\/08\/cropped-header_vbe-1.png"},"aioseo_meta_data":{"post_id":"55000050","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-30 15:38:00","updated":"2026-05-16 08:17:54","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\/2016\/\" title=\"2016\">2016<\/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\/2016\/4\/2016\/\" title=\"4\/2016\">4\/2016<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tWPF\/EDM: Kunden\u00fcbersicht\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/vbentwickler.de"},{"label":"2016","link":"https:\/\/vbentwickler.de\/category\/2016\/"},{"label":"4\/2016","link":"https:\/\/vbentwickler.de\/category\/2016\/4\/2016\/"},{"label":"WPF\/EDM: Kunden&uuml;bersicht","link":"https:\/\/vbentwickler.de\/WPFEDM_Kundenuebersicht\/"}],"_links":{"self":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts\/55000050","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=55000050"}],"version-history":[{"count":0,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts\/55000050\/revisions"}],"wp:attachment":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/media?parent=55000050"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/categories?post=55000050"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/tags?post=55000050"},{"taxonomy":"yst_prominent_words","embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/yst_prominent_words?post=55000050"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}