{"id":55000212,"date":"2020-08-01T00:00:00","date_gmt":"2020-11-26T14:43:38","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=212"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"Onlinebanking_mit_DDBAC_Benutzeroberflaeche","status":"publish","type":"post","link":"https:\/\/vbentwickler.de\/Onlinebanking_mit_DDBAC_Benutzeroberflaeche\/","title":{"rendered":"Onlinebanking mit DDBAC: Benutzeroberfl&auml;che"},"content":{"rendered":"<p><b>Nachdem wir die Funktionen zum Abrufen von Kontost&auml;nden und Ums&auml;tzen sowie f&uuml;r das &Uuml;berweisen programmiert haben, k&ouml;nnen wir uns an den Entwurf einer Benutzeroberfl&auml;che f&uuml;r diese Funktionen begeben. Diese soll kompakte Formulare f&uuml;r die wichtigsten bereits behandelten Onlinebanking-Funktionen enthalten. Dazu geh&ouml;rt die Auswahl von Bankaccount und Konto sowie die Anzeige von Ums&auml;tzen und Kontostand. Dies erledigen wir im Hauptfenster der Anwendung. Ein weiteres Fenster erlaubt dann das Ausf&uuml;hren einer &Uuml;berweisung f&uuml;r das aktuell im Hauptfenster ausgew&auml;hlte Konto. Au&szlig;erdem ben&ouml;tigen wir noch eine Tabelle, mit der wir die abgefragten Umsatzdaten speichern k&ouml;nnen. Diese f&uuml;gen wir per Entity Framework hinzu.<\/b><\/p>\n<p><b>Voraussetzungen<\/b><\/p>\n<p><b>Voraussetzung f&uuml;r das Umsetzen der L&ouml;sung dieses Artikels ist das Vorhandensein einer DDBAC-Lizenz. Die damit nutzbaren Komponenten sind leider nicht mehr kostenlos verf&uuml;gbar, sondern m&uuml;ssen lizensiert werden, bevor man diese in seine Produkte einbauen kann. Lizenzen finden Sie im Onlineshop unter <b>https:\/\/shop.minhorst.com\/access-tools\/295\/ddbac-jahreslizenzc=78<\/b>. <\/b><\/p>\n<p><b>Vorbereitungen<\/b><\/p>\n<p>Als Projekt legen wir ein neues Projekt des Typs <b>Visual Basic|Windows Desktop|WPF-App <\/b>an.<\/p>\n<p>Dann f&uuml;gen wir ein neues Element des Typs <b>ADO.NET Entity Data Model <\/b>hinzu. Dieses dient dazu, ein Entity Data Model zu erstellen und &uuml;ber dieses automatisch eine Datenbank mit der ben&ouml;tigten Tabelle zu generieren. Nachdem Sie mit dem Men&uuml;-befehl <b>Projekt|Neues Element hinzuf&uuml;gen&#8230; <\/b>den Dialog <b>Neues Element hinzuf&uuml;gen <\/b>ge&ouml;ffnet haben, tragen Sie den Namen des Entity Data Models ein (hier <b>OnlinebankingContext<\/b>) und klicken auf <b>Hinzuf&uuml;gen<\/b>. Im nun erscheinenden <b>Assistent f&uuml;r Entity Data Model <\/b>w&auml;hlen Sie den Typ <b>Leeres Code First-Modell <\/b>aus. Wenige Sekunden sp&auml;ter hat der Assistent die notwendigen Elemente hinzugef&uuml;gt.<\/p>\n<p>Durch diesen Schritt haben wir au&szlig;erdem direkt &Auml;nderungen an der Datei <b>App.config <\/b>vorgenommen. Dort steht nun im Element <b>connectionStrings <\/b>die Verbindungszeichenfolge, mit der wir sp&auml;ter die Datenbank zum Speichern der Ums&auml;tze erstellen und verwenden.<\/p>\n<p>Au&szlig;erdem ben&ouml;tigen wir noch eine Referenz auf die DDBAC-Komponenten, die den Zugriff auf Ihre Konten &uuml;berhaupt erst erm&ouml;glichen. Dazu f&uuml;gen Sie dem Projekt den Verweis aus Bild 1 hinzu.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2020_04\/pic_212_001.png\" alt=\"Verweis auf die DDBAC-Bibliothek\" width=\"649,559\" height=\"279,8978\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 1: Verweis auf die DDBAC-Bibliothek<\/span><\/b><\/p>\n<p><b>Kontostand anzeigen<\/b><\/p>\n<p>Wir beginnen mit der Anzeige des Kontostands. Hier wollen wir in einem Fenster die Auswahl des Kontakts und anschlie&szlig;end des gew&uuml;nschten Kontos erlauben. Per Klick auf eine Schaltfl&auml;che soll dann der Kontostand eingelesen und in einem Textfeld angezeigt werden. Wie Sie bereits in den vorherigen Artikeln erfahren haben, legen wir die Kontakte und Konten &uuml;ber die Systemsteuerung an, und zwar &uuml;ber die App <b>Homebanking Administrator (32-Bit)<\/b>. Auf die dort angelegten und synchronisierten Elemente k&ouml;nnen wir dann per Code zugreifen.<\/p>\n<p>Ein neues WPF-Fenster soll nun zun&auml;chst ein Kombinationsfeld zur Auswahl des Kontakts anbieten. Nachdem der Benutzer dort einen Eintrag ausgew&auml;hlt hat, sollen die zum gew&auml;hlten Kontakt geh&ouml;renden Konten in einem zweiten Kombinationsfeld angezeigt werden. Das passende Steuer-element f&uuml;r diesen Zweck ist jeweils das <b>ComboBox<\/b>-Element. Also f&uuml;gen wir zun&auml;chst zwei solche Elemente im Hauptfenster <b>MainWindow.xaml <\/b>an. Damit die zus&auml;tzlich angelegten Bezeichnungsfelder optisch ansprechend dargestellt werden, erstellen wir zuvor einige Spalten und Zeilen im bereits vorhandenen <b>Grid<\/b>-Element.<\/p>\n<p><b>Klasse f&uuml;r die Kontakte anlegen<\/b><\/p>\n<p>Die &uuml;ber die Systemsteuerung hinzuf&uuml;gten Onlinebanking-Kontakte lesen wir mithilfe der im Artikel <b>Onlinebanking mit DDBAC: Saldo und Ums&auml;tze <\/b>beschriebenen Funktion ein, die wir jedoch leicht abwandeln. Die eingelesenen Daten sollen je Kontakt in einer neuen Instanz der nachfolgend beschriebenen Klasse landen:<\/p>\n<pre><span style=\"color:blue;\">Public Class<\/span> Contact\r\n     <span style=\"color:blue;\">Public <\/span>BankCode<span style=\"color:blue;\"> As String<\/span>\r\n     <span style=\"color:blue;\">Public <\/span>CountryCode<span style=\"color:blue;\"> As String<\/span>\r\n     <span style=\"color:blue;\">Public <\/span>UserID<span style=\"color:blue;\"> As String<\/span>\r\n<span style=\"color:blue;\">End Class<\/span><\/pre>\n<p>Diese Klasse legen Sie als neues Element im Projekt an und speichern es unter <b>Contact.vb<\/b>. Wir ben&ouml;tigen allerdings die <b>INotifyPropertyChanged<\/b>-Schnittstelle in dieser Klasse, daher &auml;ndern wir diese wie folgt.<\/p>\n<p>Wir f&uuml;gen au&szlig;erdem noch eine Eigenschaft namens <b>BACContact <\/b>hinzu, mit der wir einen Verweis auf das <b>BACContact<\/b>-Objekt speichern, aus dem wir die Eigenschaften der Klasse ausgelesen haben:<\/p>\n<pre>Imports System.ComponentModel\r\n<span style=\"color:blue;\">Public Class<\/span> Contact\r\n     Implements INotifyPropertyChanged\r\n     <span style=\"color:blue;\">Public <\/span>Event PropertyChanged<span style=\"color:blue;\"> As <\/span>PropertyChangedEventHandler Implements INotifyPropertyChanged.PropertyChanged\r\n     Protected Overridable Sub OnPropertyChanged(propname<span style=\"color:blue;\"> As String<\/span>)\r\n         RaiseEvent PropertyChanged(Me, <span style=\"color:blue;\">New<\/span> PropertyChangedEventArgs(propname))\r\n     End Sub\r\n     <span style=\"color:blue;\">Private <\/span>_bankCode<span style=\"color:blue;\"> As String<\/span>\r\n     <span style=\"color:blue;\">Private <\/span>_countryCode<span style=\"color:blue;\"> As String<\/span>\r\n     <span style=\"color:blue;\">Private <\/span>_userID<span style=\"color:blue;\"> As String<\/span>\r\n     <span style=\"color:blue;\">Private <\/span>_bACContact<span style=\"color:blue;\"> As <\/span>BACContact\r\n     <span style=\"color:blue;\">Public <\/span>Property BankCode<span style=\"color:blue;\"> As String<\/span>\r\n         Get\r\n             Return _bankCode\r\n         End Get\r\n         Set(value<span style=\"color:blue;\"> As String<\/span>)\r\n             _bankCode = value\r\n             OnPropertyChanged(\"BankCode\")\r\n         End <span style=\"color:blue;\">Set<\/span>\r\n     End Property\r\n     <span style=\"color:blue;\">Public <\/span>Property CountryCode<span style=\"color:blue;\"> As String<\/span>\r\n         Get\r\n             Return _countryCode\r\n         End Get\r\n         Set(value<span style=\"color:blue;\"> As String<\/span>)\r\n             _countryCode = value\r\n             OnPropertyChanged(CountryCode)\r\n         End <span style=\"color:blue;\">Set<\/span>\r\n     End Property\r\n     <span style=\"color:blue;\">Public <\/span>Property UserID<span style=\"color:blue;\"> As String<\/span>\r\n         Get\r\n             Return _userID\r\n         End Get\r\n         Set(value<span style=\"color:blue;\"> As String<\/span>)\r\n             _userID = value\r\n             OnPropertyChanged(\"UserID\")\r\n         End <span style=\"color:blue;\">Set<\/span>\r\n     End Property\r\n     <span style=\"color:blue;\">Public <\/span>Property BACContact<span style=\"color:blue;\"> As <\/span>BACContact\r\n         Get\r\n             Return _bACContact\r\n         End Get\r\n         Set(value<span style=\"color:blue;\"> As <\/span>BACContact)\r\n             _bACContact = value\r\n         End <span style=\"color:blue;\">Set<\/span>\r\n     End Property\r\n<span style=\"color:blue;\">End Class<\/span><\/pre>\n<p><b>Klasse f&uuml;r die Konten anlegen<\/b><\/p>\n<p>Die Klasse f&uuml;r die Konten sieht &auml;hnlich aus wie die f&uuml;r die Kontakte. Auch hier implementieren wir die <b>INotifyPropertyChanges<\/b>-Schnittstelle. Die Klasse bietet die Eigenschaften <b>AccountNumber<\/b>, <b>AcctName<\/b>, <b>BIC <\/b>und <b>IBAN <\/b>an. Dar&uuml;berhinaus wollen wir das <b>BACAccount<\/b>-Objekt, &uuml;ber das wir die Klasse f&uuml;llen, mit den Instanzen der Klasse speichern. Die Klassendefinition sieht wie folgt aus:<\/p>\n<pre>Imports System.ComponentModel\r\nImports BankingApplicationComponents\r\n<span style=\"color:blue;\">Public Class<\/span> Account\r\n     Implements INotifyPropertyChanged\r\n     <span style=\"color:blue;\">Public <\/span>Event PropertyChanged<span style=\"color:blue;\"> As <\/span>PropertyChangedEventHandler Implements INotifyPropertyChanged.PropertyChanged\r\n     Protected Overridable Sub OnPropertyChanged(propname<span style=\"color:blue;\"> As String<\/span>)\r\n         RaiseEvent PropertyChanged(Me, <span style=\"color:blue;\">New<\/span> PropertyChangedEventArgs(propname))\r\n     End Sub\r\n     <span style=\"color:blue;\">Private <\/span>_accountNumber<span style=\"color:blue;\"> As String<\/span>\r\n     <span style=\"color:blue;\">Private <\/span>_acctName<span style=\"color:blue;\"> As String<\/span>\r\n     <span style=\"color:blue;\">Private <\/span>_bIC<span style=\"color:blue;\"> As String<\/span>\r\n     <span style=\"color:blue;\">Private <\/span>_iBAN<span style=\"color:blue;\"> As String<\/span>\r\n     <span style=\"color:blue;\">Private <\/span>_bACAccount<span style=\"color:blue;\"> As <\/span>BACAccount\r\n     <span style=\"color:blue;\">Public <\/span>Property AccountNumber<span style=\"color:blue;\"> As String<\/span>\r\n         Get\r\n             Return _accountNumber\r\n         End Get\r\n         Set(value<span style=\"color:blue;\"> As String<\/span>)\r\n             _accountNumber = value\r\n             OnPropertyChanged(\"AccountNumber\")\r\n         End <span style=\"color:blue;\">Set<\/span>\r\n     End Property\r\n     ... weitere Property-Eigenschaften\r\n     <span style=\"color:blue;\">Public <\/span>Property BACAccount<span style=\"color:blue;\"> As <\/span>BACAccount\r\n         Get\r\n             Return _bACAccount\r\n         End Get\r\n         Set(value<span style=\"color:blue;\"> As <\/span>BACAccount)\r\n             _bACAccount = value\r\n         End <span style=\"color:blue;\">Set<\/span>\r\n     End Property\r\n<span style=\"color:blue;\">End Class<\/span><\/pre>\n<p><b>Auflistung mit Kontakt-Elementen f&uuml;llen<\/b><\/p>\n<p>Wenn die Anwendung gestartet und somit das Fenster <b>MainWindow.xaml <\/b>ge&ouml;ffnet wird, sollen die Kontakte aus der Systemsteuerung eingelesen und in jeweils eine neue Klasse des Typs <b>Contact <\/b>geschrieben werden. Die neuen Instanzen wollen wir au&szlig;erdem direkt zu einer Liste hinzuf&uuml;gen, die wir anschlie&szlig;end dem ersten <b>ComboBox<\/b>-Element zuweisen k&ouml;nnen. Wir nutzen dazu eine Funktion namens <b>GetBACContacts<\/b>, die eine Liste von Elementen des Typs <b>BACContact <\/b>liefert. Diese f&uuml;gen wir einem Modul namens <b>DDBACObjects.vb <\/b>hinzu, dem wir au&szlig;erdem noch per <b>Imports<\/b>-Anweisung die Elemente des Namespace <b>BankingApplicationComponents <\/b>hinzuf&uuml;gen.<\/p>\n<p>Die folgende privat deklarierte Variable speichert die <b>Contacts<\/b>-Auflistung zwischen, damit diese nicht bei jedem Zugriff erneut ausgelesen werden m&uuml;ssen:<\/p>\n<pre>     <span style=\"color:blue;\">Private <\/span>m_Contacts<span style=\"color:blue;\"> As <\/span>BACContacts<\/pre>\n<p>Die Funktion <b>GetBACContacts <\/b>liest die Kontakte mit den Methoden der DDBAC-Bibliothek aus der Systemsteuerung in die Variable <b>m_BACContacts <\/b>ein. Diese wird dann anschlie&szlig;end auch als Ergebnis der Funktion zur&uuml;ckgegeben. Wenn <b>m_BACContacts <\/b>bereits vorhanden ist, wird die Auflistung nicht erneut gef&uuml;llt. Einzige Ausnahme ist, wenn der Aufruf den Wert <b>True <\/b>f&uuml;r den Parameter <b>bolReset <\/b>enth&auml;lt. In diesem Fall werden die Kontakte auf jeden Fall erneut eingelesen:<\/p>\n<pre><span style=\"color:blue;\">Public Function <\/span>GetBACContacts(<span style=\"color:blue;\">Optional<\/span> bolReset<span style=\"color:blue;\"> As Boolean<\/span> = <span style=\"color:blue;\">False<\/span>)<span style=\"color:blue;\"> As <\/span>BACContacts\r\n     <span style=\"color:blue;\">If <\/span>m_BACContacts Is Nothing<span style=\"color:blue;\"> Then<\/span>\r\n         m_BACContacts = <span style=\"color:blue;\">New<\/span> BACContacts\r\n         m_BACContacts.Populate(\"\")\r\n     <span style=\"color:blue;\">Else<\/span>\r\n         <span style=\"color:blue;\">If <\/span>bolReset = <span style=\"color:blue;\">True<\/span><span style=\"color:blue;\"> Then<\/span>\r\n             m_BACContacts.Populate(\"\")\r\n         <span style=\"color:blue;\">End If<\/span>\r\n     <span style=\"color:blue;\">End If<\/span>\r\n     Return m_BACContacts\r\n<span style=\"color:blue;\">End Function<\/span><\/pre>\n<p>Damit haben wir mit <b>GetBACContacts <\/b>eine Liste der <b>BACContact<\/b>-Elemente eingelesen. Diese m&uuml;ssen wir nun noch in eine <b>ObservableCollection <\/b>mit Elementen des oben definierten Typs <b>Contact <\/b>umf&uuml;llen. Diese Liste wollen wir dann als Datenquelle des ersten <b>ComboBox<\/b>-Elements in unserem Fenster verwenden. Diese Aufgabe &uuml;bernimmt die Funktion <b>GetContacts<\/b>. Sie erstellt eine neue <b>ObservableCollection <\/b>in der Variablen <b>objContacts<\/b>. Dann durchl&auml;uft sie eine <b>For Each<\/b>-Schleife &uuml;ber alle <b>BACContact<\/b>-Elemente, welche die oben beschriebene Funktion <b>GetContacts <\/b>liefert. Innerhalb der Schleife legt sie ein neues <b>Contact<\/b>-Element an (nicht zu verwechseln mit <b>BACContact<\/b>), und schreibt die entsprechenden Werte in die Eigenschaften <b>BankCode<\/b>, <b>CountryCode <\/b>und <b>UserID <\/b>sowie einen Verweis auf das aktuelle <b>BACContact<\/b>-Objekt in die Eigenschaft <b>BACContact<\/b>. Anschlie&szlig;end f&uuml;gt sie das neu erstellte und gef&uuml;llte Objekt zur ObservableCollection hinzu:<\/p>\n<pre><span style=\"color:blue;\">Public Function <\/span>GetContacts()<span style=\"color:blue;\"> As <\/span>ObservableCollection(Of Contact)\r\n     <span style=\"color:blue;\">Dim <\/span>objContacts<span style=\"color:blue;\"> As <\/span>ObservableCollection(Of Contact)\r\n     <span style=\"color:blue;\">Dim <\/span>objContact<span style=\"color:blue;\"> As <\/span>Contact\r\n     <span style=\"color:blue;\">Dim <\/span>objBACContact<span style=\"color:blue;\"> As <\/span>BACContact\r\n     objContacts = <span style=\"color:blue;\">New<\/span> ObservableCollection(Of Contact)\r\n     For Each objBACContact In GetBACContacts()\r\n         objContact = <span style=\"color:blue;\">New<\/span> Contact\r\n         <span style=\"color:blue;\">With<\/span> objContact\r\n             .BankCode = objBACContact.BankCode\r\n             .CountryCode = objBACContact.CountryCode\r\n             .UserID = objBACContact.UserID\r\n             .BACContact = objBACContact\r\n             objContacts.Add(objContact)\r\n         End <span style=\"color:blue;\">With<\/span>\r\n     <span style=\"color:blue;\">Next<\/span>\r\n     Return objContacts\r\n<span style=\"color:blue;\">End Function<\/span><\/pre>\n<p><b>Auflistung f&uuml;r die Konten f&uuml;llen<\/b><\/p>\n<p>Wenn der Benutzer in der gleich noch zu erstellenden ComboBox einen Kontakt ausgew&auml;hlt hat, soll die zweite ComboBox die zu diesem Kontakt geh&ouml;renden Konten zur Auswahl anbieten. Deshalb ben&ouml;tigen wir analog zu den oben beschriebenen Funktionen <b>GetBACContacts <\/b>und <b>GetContacts<\/b> eine weitere Funktion.<\/p>\n<p>Die Funktion <b>GetBACAccounts <\/b>erwartet als Parameter ein <b>BACContact<\/b>-Objekt, zu dem sie die <b>BACAccount<\/b>-Objekte einlesen soll. Sie verwendet dann schlicht die <b>Accounts<\/b>-Auflistung des <b>BACContact<\/b>-Objekts, um die Liste in der Variablen <b>m_Accounts <\/b>des Typs <b>BACAccounts <\/b>zu speichern:<\/p>\n<pre><span style=\"color:blue;\">Public Function <\/span>GetBACAccounts(objBACContact<span style=\"color:blue;\"> As <\/span>BACContact)<span style=\"color:blue;\"> As <\/span>BACAccounts\r\n     Return objBACContact.Accounts\r\n<span style=\"color:blue;\">End Function<\/span><\/pre>\n<p>Wenn der Benutzer im ersten <b>ComboBox<\/b>-Feld mit den Kontakten einen Eintrag ausgew&auml;hlt hat, holen wir mit der folgenden Funktion die Daten zum F&uuml;llen des zweiten <b>ComboBox<\/b>-Feldes zur Anzeige der Konten dieses Kontakts. Dabei verwenden wir auch hier als Parameter das <b>BACContact<\/b>-Element des zu untersuchenden Kontaktes. Die Funktion erstellt als Erstes wieder eine neue ObservableCollection.<\/p>\n<p>In einer <b>For Each<\/b>-Schleife durchlaufen wir diesmal die mit der Funktion <b>GetBACAccounts <\/b>geholten Konten. Innerhalb der <b>For Each<\/b>-Schleife legen wir ein neues Objekt des Typs <b>Account <\/b>an und weisen diesem die Werte f&uuml;r die Eigenschaften <b>AccountNumber<\/b>, <b>AcctName<\/b>, <b>IBAN <\/b>und <b>BIC <\/b>zu sowie einen Verweis auf das <b>BACAccount<\/b>-Objekt dieses Kontos. Anschlie&szlig;end f&uuml;gen wir es der ObservableCollection namens <b>objAccounts <\/b>zu, die wir als Funktionsergebnis zur&uuml;ckliefern:<\/p>\n<pre><span style=\"color:blue;\">Public Function <\/span>GetAccounts(objBACContact<span style=\"color:blue;\"> As <\/span>BACContact)<span style=\"color:blue;\"> As <\/span>ObservableCollection(Of Account)\r\n     <span style=\"color:blue;\">Dim <\/span>objAccounts<span style=\"color:blue;\"> As <\/span>ObservableCollection(Of Account)\r\n     <span style=\"color:blue;\">Dim <\/span>objAccount<span style=\"color:blue;\"> As <\/span>Account\r\n     <span style=\"color:blue;\">Dim <\/span>objBACAccount<span style=\"color:blue;\"> As <\/span>BACAccount\r\n     objAccounts = <span style=\"color:blue;\">New<\/span> ObservableCollection(Of Account)\r\n     For Each objBACAccount In GetBACAccounts(objBACContact)\r\n         objAccount = <span style=\"color:blue;\">New<\/span> Account\r\n         <span style=\"color:blue;\">With<\/span> objAccount\r\n             .AccountNumber = objBACAccount.AccountNumber\r\n             .AcctName = objBACAccount.AcctName\r\n             .BIC = objBACAccount.BIC\r\n             .IBAN = objBACAccount.IBAN\r\n             .BACAccount = objBACAccount\r\n         End <span style=\"color:blue;\">With<\/span>\r\n         objAccounts.Add(objAccount)\r\n     <span style=\"color:blue;\">Next<\/span>\r\n     Return objAccounts\r\n<span style=\"color:blue;\">End Function<\/span><\/pre>\n<p><b>Fenster zur Anzeige der Auswahlfelder f&uuml;r Kontakte und Konten<\/b><\/p>\n<p>Das Fenster soll im oberen Bereich zwei <b>ComboBox<\/b>-Elemente zur Auswahl von Kontakten und Konten anzeigen. Im Kontakt-Kombinationsfeld wollen wir die <b>UserID <\/b>und die <b>Bankleitzahl <\/b>anzeigen. Das Konto-Auswahlfeld soll nur die IBAN anzeigen. Die Definition dieser beiden Steuer-elemente sieht wie folgt aus. Als Erstes das <b>ComboBox<\/b>-Element <b>cboContacts<\/b>, das an die Auflistung <b>Contacts <\/b>gebunden ist, die wir gleich noch im Code behind-Modul definieren.<\/p>\n<p>Das <b>ComboBox<\/b>-Element hat au&szlig;erdem ein Attribut f&uuml;r das Ereignis <b>SelectionChanged<\/b>. Da wir zwei Felder im <b>ComboBox<\/b>-Element anzeigen wollen, stellen wir diese in einem <b>ItemTemplate <\/b>und den entsprechenden untergeordneten Elementen wie folgt dar:<\/p>\n<pre>&lt;Label Grid.Column=\"0\" Content=\"Kontakt:\"\/&gt;\r\n&lt;ComboBox x:Name=\"cboContacts\" Grid.Row=\"0\" Grid.Column=\"1\" Width=\"200\"\r\n             ItemsSource=\"{Binding Contacts}\"\r\n             SelectedValuePath=\"UserID\"\r\n             SelectionChanged=\"CboContacts_SelectionChanged\"&gt;\r\n     &lt;ComboBox.ItemTemplate&gt;\r\n         &lt;DataTemplate&gt;\r\n             &lt;TextBlock&gt;\r\n                 &lt;TextBlock.Text&gt;\r\n                     &lt;MultiBinding StringFormat=\"{}{0} {1}\"&gt;\r\n                         &lt;Binding Path=\"UserID\" \/&gt;\r\n                         &lt;Binding Path=\"BankCode\" \/&gt;\r\n                     &lt;\/MultiBinding&gt;\r\n                 &lt;\/TextBlock.Text&gt;\r\n             &lt;\/TextBlock&gt;\r\n         &lt;\/DataTemplate&gt;\r\n     &lt;\/ComboBox.ItemTemplate&gt;\r\n&lt;\/ComboBox&gt;<\/pre>\n<p>Das zweite <b>ComboBox<\/b>-Element f&uuml;r die Konten ist an die Liste <b>Accounts <\/b>gebunden. Sie soll nur das Feld <b>IBAN <\/b>anzeigen und l&ouml;st ebenfalls das Ereignis <b>SelectionChanged <\/b>aus:<\/p>\n<pre>&lt;Label Grid.Column=\"0\" Grid.Row=\"1\" Content=\"Konto:\"\/&gt;\r\n&lt;ComboBox x:Name=\"cboAccounts\" Grid.Row=\"1\" Grid.Column=\"1\" Width=\"200\"\r\n             ItemsSource=\"{Binding Accounts}\"\r\n             SelectedValuePath=\"IBAN\"\r\n             SelectionChanged=\"CboAccounts_SelectionChanged\"\r\n             DisplayMemberPath=\"IBAN\"&gt;\r\n&lt;\/ComboBox&gt;<\/pre>\n<p><b>Code behind-Klasse des Fensters<\/b><\/p>\n<p>Die Code behind-Klasse verwendet die folgenden beiden Namespaces:<\/p>\n<pre>Imports System.Collections.ObjectModel\r\nImports System.ComponentModel<\/pre>\n<p>Au&szlig;erdem implementiert sie die <b>INotifyPropertyChanged<\/b>-Schnittstelle:<\/p>\n<pre><span style=\"color:blue;\">Class<\/span> MainWindow\r\n     Implements INotifyPropertyChanged\r\n     <span style=\"color:blue;\">Public <\/span>Event PropertyChanged<span style=\"color:blue;\"> As <\/span>PropertyChangedEventHandler Implements INotifyPropertyChanged.PropertyChanged\r\n     Protected Overridable Sub OnPropertyChanged(propname<span style=\"color:blue;\"> As String<\/span>)\r\n         RaiseEvent PropertyChanged(Me, <span style=\"color:blue;\">New<\/span> PropertyChangedEventArgs(propname))\r\n     End Sub<\/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\/55000212\/\">\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\/55000212?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\/55000212\/\"\/>\n\t\t\t\t\t\t\t\t<input type=\"hidden\" name=\"rcp_login_nonce\" value=\"125f583acb\"\/>\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>Nachdem wir die Funktionen zum Abrufen von Kontost&auml;nden und Ums&auml;tzen sowie f&uuml;r das &Uuml;berweisen programmiert haben, k&ouml;nnen wir uns an den Entwurf einer Benutzeroberfl&auml;che f&uuml;r diese Funktionen begeben. Diese soll kompakte Formulare f&uuml;r die wichtigsten bereits behandelten Onlinebanking-Funktionen enthalten. Dazu geh&ouml;rt die Auswahl von Bankaccount und Konto sowie die Anzeige von Ums&auml;tzen und Kontostand. Dies erledigen wir im Hauptfenster der Anwendung. Ein weiteres Fenster erlaubt dann das Ausf&uuml;hren einer &Uuml;berweisung f&uuml;r das aktuell im Hauptfenster ausgew&auml;hlte Konto. Au&szlig;erdem ben&ouml;tigen wir noch eine Tabelle, mit der wir die abgefragten Umsatzdaten speichern k&ouml;nnen. Diese f&uuml;gen wir per Entity Framework hinzu.<\/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":[662020,66032020,66042020,44000027,44000004],"tags":[],"yst_prominent_words":[],"class_list":["post-55000212","post","type-post","status-publish","format-standard","hentry","category-662020","category-66032020","category-66042020","category-Excel_programmieren","category-Loesungen"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.10 - aioseo.com -->\n\t<meta name=\"description\" content=\"Nachdem wir die Funktionen zum Abrufen von Kontost\u00e4nden und Ums\u00e4tzen sowie f\u00fcr das \u00dcberweisen programmiert haben, k\u00f6nnen wir uns an den Entwurf einer Benutzeroberfl\u00e4che f\u00fcr diese Funktionen begeben. Diese soll kompakte Formulare f\u00fcr die wichtigsten bereits behandelten Onlinebanking-Funktionen enthalten. Dazu geh\u00f6rt die Auswahl von Bankaccount und Konto sowie die Anzeige von Ums\u00e4tzen und Kontostand. Dies erledigen wir im Hauptfenster der Anwendung. Ein weiteres Fenster erlaubt dann das Ausf\u00fchren einer \u00dcberweisung f\u00fcr das aktuell im Hauptfenster ausgew\u00e4hlte Konto. Au\u00dferdem ben\u00f6tigen wir noch eine Tabelle, mit der wir die abgefragten Umsatzdaten speichern k\u00f6nnen. Diese f\u00fcgen wir per Entity Framework hinzu.\" \/>\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\/Onlinebanking_mit_DDBAC_Benutzeroberflaeche\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\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=\"Onlinebanking mit DDBAC: Benutzeroberfl\u00e4che - Visual Basic Entwickler\" \/>\n\t\t<meta property=\"og:description\" content=\"Nachdem wir die Funktionen zum Abrufen von Kontost\u00e4nden und Ums\u00e4tzen sowie f\u00fcr das \u00dcberweisen programmiert haben, k\u00f6nnen wir uns an den Entwurf einer Benutzeroberfl\u00e4che f\u00fcr diese Funktionen begeben. Diese soll kompakte Formulare f\u00fcr die wichtigsten bereits behandelten Onlinebanking-Funktionen enthalten. Dazu geh\u00f6rt die Auswahl von Bankaccount und Konto sowie die Anzeige von Ums\u00e4tzen und Kontostand. Dies erledigen wir im Hauptfenster der Anwendung. Ein weiteres Fenster erlaubt dann das Ausf\u00fchren einer \u00dcberweisung f\u00fcr das aktuell im Hauptfenster ausgew\u00e4hlte Konto. Au\u00dferdem ben\u00f6tigen wir noch eine Tabelle, mit der wir die abgefragten Umsatzdaten speichern k\u00f6nnen. Diese f\u00fcgen wir per Entity Framework hinzu.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/vbentwickler.de\/Onlinebanking_mit_DDBAC_Benutzeroberflaeche\/\" \/>\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-11-26T14:43:38+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=\"Onlinebanking mit DDBAC: Benutzeroberfl\u00e4che - Visual Basic Entwickler\" \/>\n\t\t<meta name=\"twitter:description\" content=\"Nachdem wir die Funktionen zum Abrufen von Kontost\u00e4nden und Ums\u00e4tzen sowie f\u00fcr das \u00dcberweisen programmiert haben, k\u00f6nnen wir uns an den Entwurf einer Benutzeroberfl\u00e4che f\u00fcr diese Funktionen begeben. Diese soll kompakte Formulare f\u00fcr die wichtigsten bereits behandelten Onlinebanking-Funktionen enthalten. Dazu geh\u00f6rt die Auswahl von Bankaccount und Konto sowie die Anzeige von Ums\u00e4tzen und Kontostand. Dies erledigen wir im Hauptfenster der Anwendung. Ein weiteres Fenster erlaubt dann das Ausf\u00fchren einer \u00dcberweisung f\u00fcr das aktuell im Hauptfenster ausgew\u00e4hlte Konto. Au\u00dferdem ben\u00f6tigen wir noch eine Tabelle, mit der wir die abgefragten Umsatzdaten speichern k\u00f6nnen. Diese f\u00fcgen wir per Entity Framework hinzu.\" \/>\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\\\/Onlinebanking_mit_DDBAC_Benutzeroberflaeche\\\/#blogposting\",\"name\":\"Onlinebanking mit DDBAC: Benutzeroberfl\\u00e4che - Visual Basic Entwickler\",\"headline\":\"Onlinebanking mit DDBAC: Benutzeroberfl&auml;che\",\"author\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/author\\\/andreminhorst-com\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/#organization\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"..\\\/fileadmin\\\/_temp_\\\/2020_04\\\/pic_212_001.png\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/Onlinebanking_mit_DDBAC_Benutzeroberflaeche\\\/#articleImage\"},\"datePublished\":\"2020-08-01T00:00:00+00:00\",\"dateModified\":\"-0001-11-30T00:00:00+00:00\",\"inLanguage\":\"de-DE\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/Onlinebanking_mit_DDBAC_Benutzeroberflaeche\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/Onlinebanking_mit_DDBAC_Benutzeroberflaeche\\\/#webpage\"},\"articleSection\":\"2020, 3\\\/2020, 4\\\/2020, Excel programmieren, L\\u00f6sungen\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/Onlinebanking_mit_DDBAC_Benutzeroberflaeche\\\/#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\\\/2020\\\/#listItem\",\"name\":\"2020\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/category\\\/2020\\\/#listItem\",\"position\":2,\"name\":\"2020\",\"item\":\"https:\\\/\\\/vbentwickler.de\\\/category\\\/2020\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/category\\\/2020\\\/3\\\/2020\\\/#listItem\",\"name\":\"3\\\/2020\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/category\\\/2020\\\/3\\\/2020\\\/#listItem\",\"position\":3,\"name\":\"3\\\/2020\",\"item\":\"https:\\\/\\\/vbentwickler.de\\\/category\\\/2020\\\/3\\\/2020\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/Onlinebanking_mit_DDBAC_Benutzeroberflaeche\\\/#listItem\",\"name\":\"Onlinebanking mit DDBAC: Benutzeroberfl&auml;che\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/category\\\/2020\\\/#listItem\",\"name\":\"2020\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/Onlinebanking_mit_DDBAC_Benutzeroberflaeche\\\/#listItem\",\"position\":4,\"name\":\"Onlinebanking mit DDBAC: Benutzeroberfl&auml;che\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/category\\\/2020\\\/3\\\/2020\\\/#listItem\",\"name\":\"3\\\/2020\"}}]},{\"@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\\\/Onlinebanking_mit_DDBAC_Benutzeroberflaeche\\\/#organizationLogo\",\"width\":664,\"height\":225},\"image\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/Onlinebanking_mit_DDBAC_Benutzeroberflaeche\\\/#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\\\/Onlinebanking_mit_DDBAC_Benutzeroberflaeche\\\/#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\\\/Onlinebanking_mit_DDBAC_Benutzeroberflaeche\\\/#webpage\",\"url\":\"https:\\\/\\\/vbentwickler.de\\\/Onlinebanking_mit_DDBAC_Benutzeroberflaeche\\\/\",\"name\":\"Onlinebanking mit DDBAC: Benutzeroberfl\\u00e4che - Visual Basic Entwickler\",\"description\":\"Nachdem wir die Funktionen zum Abrufen von Kontost\\u00e4nden und Ums\\u00e4tzen sowie f\\u00fcr das \\u00dcberweisen programmiert haben, k\\u00f6nnen wir uns an den Entwurf einer Benutzeroberfl\\u00e4che f\\u00fcr diese Funktionen begeben. Diese soll kompakte Formulare f\\u00fcr die wichtigsten bereits behandelten Onlinebanking-Funktionen enthalten. Dazu geh\\u00f6rt die Auswahl von Bankaccount und Konto sowie die Anzeige von Ums\\u00e4tzen und Kontostand. Dies erledigen wir im Hauptfenster der Anwendung. Ein weiteres Fenster erlaubt dann das Ausf\\u00fchren einer \\u00dcberweisung f\\u00fcr das aktuell im Hauptfenster ausgew\\u00e4hlte Konto. Au\\u00dferdem ben\\u00f6tigen wir noch eine Tabelle, mit der wir die abgefragten Umsatzdaten speichern k\\u00f6nnen. Diese f\\u00fcgen wir per Entity Framework hinzu.\",\"inLanguage\":\"de-DE\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/Onlinebanking_mit_DDBAC_Benutzeroberflaeche\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/author\\\/andreminhorst-com\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/author\\\/andreminhorst-com\\\/#author\"},\"datePublished\":\"2020-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":"Onlinebanking mit DDBAC: Benutzeroberfl\u00e4che - Visual Basic Entwickler","description":"Nachdem wir die Funktionen zum Abrufen von Kontost\u00e4nden und Ums\u00e4tzen sowie f\u00fcr das \u00dcberweisen programmiert haben, k\u00f6nnen wir uns an den Entwurf einer Benutzeroberfl\u00e4che f\u00fcr diese Funktionen begeben. Diese soll kompakte Formulare f\u00fcr die wichtigsten bereits behandelten Onlinebanking-Funktionen enthalten. Dazu geh\u00f6rt die Auswahl von Bankaccount und Konto sowie die Anzeige von Ums\u00e4tzen und Kontostand. Dies erledigen wir im Hauptfenster der Anwendung. Ein weiteres Fenster erlaubt dann das Ausf\u00fchren einer \u00dcberweisung f\u00fcr das aktuell im Hauptfenster ausgew\u00e4hlte Konto. Au\u00dferdem ben\u00f6tigen wir noch eine Tabelle, mit der wir die abgefragten Umsatzdaten speichern k\u00f6nnen. Diese f\u00fcgen wir per Entity Framework hinzu.","canonical_url":"https:\/\/vbentwickler.de\/Onlinebanking_mit_DDBAC_Benutzeroberflaeche\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"BlogPosting","@id":"https:\/\/vbentwickler.de\/Onlinebanking_mit_DDBAC_Benutzeroberflaeche\/#blogposting","name":"Onlinebanking mit DDBAC: Benutzeroberfl\u00e4che - Visual Basic Entwickler","headline":"Onlinebanking mit DDBAC: Benutzeroberfl&auml;che","author":{"@id":"https:\/\/vbentwickler.de\/author\/andreminhorst-com\/#author"},"publisher":{"@id":"https:\/\/vbentwickler.de\/#organization"},"image":{"@type":"ImageObject","url":"..\/fileadmin\/_temp_\/2020_04\/pic_212_001.png","@id":"https:\/\/vbentwickler.de\/Onlinebanking_mit_DDBAC_Benutzeroberflaeche\/#articleImage"},"datePublished":"2020-08-01T00:00:00+00:00","dateModified":"-0001-11-30T00:00:00+00:00","inLanguage":"de-DE","mainEntityOfPage":{"@id":"https:\/\/vbentwickler.de\/Onlinebanking_mit_DDBAC_Benutzeroberflaeche\/#webpage"},"isPartOf":{"@id":"https:\/\/vbentwickler.de\/Onlinebanking_mit_DDBAC_Benutzeroberflaeche\/#webpage"},"articleSection":"2020, 3\/2020, 4\/2020, Excel programmieren, L\u00f6sungen"},{"@type":"BreadcrumbList","@id":"https:\/\/vbentwickler.de\/Onlinebanking_mit_DDBAC_Benutzeroberflaeche\/#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\/2020\/#listItem","name":"2020"}},{"@type":"ListItem","@id":"https:\/\/vbentwickler.de\/category\/2020\/#listItem","position":2,"name":"2020","item":"https:\/\/vbentwickler.de\/category\/2020\/","nextItem":{"@type":"ListItem","@id":"https:\/\/vbentwickler.de\/category\/2020\/3\/2020\/#listItem","name":"3\/2020"},"previousItem":{"@type":"ListItem","@id":"https:\/\/vbentwickler.de#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/vbentwickler.de\/category\/2020\/3\/2020\/#listItem","position":3,"name":"3\/2020","item":"https:\/\/vbentwickler.de\/category\/2020\/3\/2020\/","nextItem":{"@type":"ListItem","@id":"https:\/\/vbentwickler.de\/Onlinebanking_mit_DDBAC_Benutzeroberflaeche\/#listItem","name":"Onlinebanking mit DDBAC: Benutzeroberfl&auml;che"},"previousItem":{"@type":"ListItem","@id":"https:\/\/vbentwickler.de\/category\/2020\/#listItem","name":"2020"}},{"@type":"ListItem","@id":"https:\/\/vbentwickler.de\/Onlinebanking_mit_DDBAC_Benutzeroberflaeche\/#listItem","position":4,"name":"Onlinebanking mit DDBAC: Benutzeroberfl&auml;che","previousItem":{"@type":"ListItem","@id":"https:\/\/vbentwickler.de\/category\/2020\/3\/2020\/#listItem","name":"3\/2020"}}]},{"@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\/Onlinebanking_mit_DDBAC_Benutzeroberflaeche\/#organizationLogo","width":664,"height":225},"image":{"@id":"https:\/\/vbentwickler.de\/Onlinebanking_mit_DDBAC_Benutzeroberflaeche\/#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\/Onlinebanking_mit_DDBAC_Benutzeroberflaeche\/#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\/Onlinebanking_mit_DDBAC_Benutzeroberflaeche\/#webpage","url":"https:\/\/vbentwickler.de\/Onlinebanking_mit_DDBAC_Benutzeroberflaeche\/","name":"Onlinebanking mit DDBAC: Benutzeroberfl\u00e4che - Visual Basic Entwickler","description":"Nachdem wir die Funktionen zum Abrufen von Kontost\u00e4nden und Ums\u00e4tzen sowie f\u00fcr das \u00dcberweisen programmiert haben, k\u00f6nnen wir uns an den Entwurf einer Benutzeroberfl\u00e4che f\u00fcr diese Funktionen begeben. Diese soll kompakte Formulare f\u00fcr die wichtigsten bereits behandelten Onlinebanking-Funktionen enthalten. Dazu geh\u00f6rt die Auswahl von Bankaccount und Konto sowie die Anzeige von Ums\u00e4tzen und Kontostand. Dies erledigen wir im Hauptfenster der Anwendung. Ein weiteres Fenster erlaubt dann das Ausf\u00fchren einer \u00dcberweisung f\u00fcr das aktuell im Hauptfenster ausgew\u00e4hlte Konto. Au\u00dferdem ben\u00f6tigen wir noch eine Tabelle, mit der wir die abgefragten Umsatzdaten speichern k\u00f6nnen. Diese f\u00fcgen wir per Entity Framework hinzu.","inLanguage":"de-DE","isPartOf":{"@id":"https:\/\/vbentwickler.de\/#website"},"breadcrumb":{"@id":"https:\/\/vbentwickler.de\/Onlinebanking_mit_DDBAC_Benutzeroberflaeche\/#breadcrumblist"},"author":{"@id":"https:\/\/vbentwickler.de\/author\/andreminhorst-com\/#author"},"creator":{"@id":"https:\/\/vbentwickler.de\/author\/andreminhorst-com\/#author"},"datePublished":"2020-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":"Onlinebanking mit DDBAC: Benutzeroberfl\u00e4che - Visual Basic Entwickler","og:description":"Nachdem wir die Funktionen zum Abrufen von Kontost\u00e4nden und Ums\u00e4tzen sowie f\u00fcr das \u00dcberweisen programmiert haben, k\u00f6nnen wir uns an den Entwurf einer Benutzeroberfl\u00e4che f\u00fcr diese Funktionen begeben. Diese soll kompakte Formulare f\u00fcr die wichtigsten bereits behandelten Onlinebanking-Funktionen enthalten. Dazu geh\u00f6rt die Auswahl von Bankaccount und Konto sowie die Anzeige von Ums\u00e4tzen und Kontostand. Dies erledigen wir im Hauptfenster der Anwendung. Ein weiteres Fenster erlaubt dann das Ausf\u00fchren einer \u00dcberweisung f\u00fcr das aktuell im Hauptfenster ausgew\u00e4hlte Konto. Au\u00dferdem ben\u00f6tigen wir noch eine Tabelle, mit der wir die abgefragten Umsatzdaten speichern k\u00f6nnen. Diese f\u00fcgen wir per Entity Framework hinzu.","og:url":"https:\/\/vbentwickler.de\/Onlinebanking_mit_DDBAC_Benutzeroberflaeche\/","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-11-26T14:43:38+00:00","article:modified_time":"-001-11-30T00:00:00+00:00","twitter:card":"summary_large_image","twitter:title":"Onlinebanking mit DDBAC: Benutzeroberfl\u00e4che - Visual Basic Entwickler","twitter:description":"Nachdem wir die Funktionen zum Abrufen von Kontost\u00e4nden und Ums\u00e4tzen sowie f\u00fcr das \u00dcberweisen programmiert haben, k\u00f6nnen wir uns an den Entwurf einer Benutzeroberfl\u00e4che f\u00fcr diese Funktionen begeben. Diese soll kompakte Formulare f\u00fcr die wichtigsten bereits behandelten Onlinebanking-Funktionen enthalten. Dazu geh\u00f6rt die Auswahl von Bankaccount und Konto sowie die Anzeige von Ums\u00e4tzen und Kontostand. Dies erledigen wir im Hauptfenster der Anwendung. Ein weiteres Fenster erlaubt dann das Ausf\u00fchren einer \u00dcberweisung f\u00fcr das aktuell im Hauptfenster ausgew\u00e4hlte Konto. Au\u00dferdem ben\u00f6tigen wir noch eine Tabelle, mit der wir die abgefragten Umsatzdaten speichern k\u00f6nnen. Diese f\u00fcgen wir per Entity Framework hinzu.","twitter:image":"https:\/\/datenbankentwickler.net\/wp-content\/uploads\/2022\/08\/cropped-header_vbe-1.png"},"aioseo_meta_data":{"post_id":"55000212","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 16:07:10","updated":"2026-05-16 08:43:01","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\/2020\/\" title=\"2020\">2020<\/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\/2020\/3\/2020\/\" title=\"3\/2020\">3\/2020<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tOnlinebanking mit DDBAC: Benutzeroberfl\u00e4che\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/vbentwickler.de"},{"label":"2020","link":"https:\/\/vbentwickler.de\/category\/2020\/"},{"label":"3\/2020","link":"https:\/\/vbentwickler.de\/category\/2020\/3\/2020\/"},{"label":"Onlinebanking mit DDBAC: Benutzeroberfl&auml;che","link":"https:\/\/vbentwickler.de\/Onlinebanking_mit_DDBAC_Benutzeroberflaeche\/"}],"_links":{"self":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts\/55000212","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=55000212"}],"version-history":[{"count":0,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts\/55000212\/revisions"}],"wp:attachment":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/media?parent=55000212"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/categories?post=55000212"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/tags?post=55000212"},{"taxonomy":"yst_prominent_words","embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/yst_prominent_words?post=55000212"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}