Datenbindung für WPF: Grundlagen

Datenbindungen ermöglichen das Binden von Daten an Steuerelemente. Dadurch ist es möglich, eine Verbindung zwischen einer Datenquelle (z. B. einer Objektliste) und der Benutzeroberfläche herzustellen. Dies ist ein großer Vorteil und bietet uns eine viel bessere Möglichkeit als die „einfache“ Datenbindung von Windows Forms (z. B. Laden eines Bildes aus der internen Ressourcen-Tabelle).
Doch welche Vorteile haben wir mit Hilfe der Datenbindung? Erläutern wir einige Praxisbeispiele, um den Sinn und Zweck von Datenbindungen besser zu verstehen.
Stellen Sie sich vor, Sie haben ein Programm mit mehreren Fenstern. In allen Fenstern befindet sich am unteren Fensterrand ein Label für die Programm-Version. Nun verbessern oder überarbeiten Sie das Programm. Da sich hierdurch die Version geändert hat, müssten Sie alle Formulare öffnen und dort den Inhalt des Labels ändern. Durch eine statische Ressource müssten Sie den Wert lediglich einmal in der Ressourcen-Tabelle des Programms ändern.
Ein weiteres Beispiel: Sie haben ein Programm bei der es eine Auswahlliste gibt. Für eine bessere Übersicht wollen Sie in einem Label die aktuelle Auswahl des Benutzers nochmals anzeigen. Sie könnten dies über das SelectionChanged-Event programmiertechnisch lösen. Doch auch hier lässt sich dieses „Problem“ über eine dynamische Bindung einfach und elegant lösen. Zu Wissen ist, dass auch das Binden einer Variablen aus dem Daten-Kontext-Objekt der Klasse mit dieser Technik möglich ist (dazu später mehr).
Vielleicht haben Sie auch schon mal eine Auswahlliste gesehen, bei der nicht nur ein einfacher Titel, sondern verschiedene Texte und / oder Bilder angezeigt werden. Doch wie realisiert man so etwas in C# mit WPF? Hierfür bietet WPF die Definition sogenannter Daten-Templates. Dabei kann das Aussehen eines einzelnen Items in einem Steuerelement (z. B. einer Auswahlliste) verändert werden. Um nun das Aussehen eines einzelnen Items an unsere Datenquelle zu binden, benötigen wir ebenfalls eine Datenbindung.
Auf die einzelnen Möglichkeiten der Datenbindung gehen wir im Laufe des Kapitels genauer ein. Bei allen Datenbindungen notieren wir in XAML innerhalb der Anführungszeichen eckige Klammern. Innerhalb dieser Klammern können wir nun verschiedene Bindungs-Anweisungen vornehmen. Dazu mehr in den nächsten Themen.

MainWindow.xaml

<Window x:Class="CSV20.Statische_Ressourcen.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:p="clr-namespace:CSV20.Statische_Ressourcen.Properties"
        Title="Statische Ressourcen" Height="125" Width="300" ResizeMode="NoResize">
    <Grid>
        <Label VerticalAlignment="Top" HorizontalAlignment="Center" Margin="0,10,0,0" 
               Content="{x:Static p:Resources.Titel}" FontSize="14" FontWeight="Bold" />
        <Label VerticalAlignment="Top" HorizontalAlignment="Center" Margin="0,40,0,0"
               Content="{x:Static p:Resources.Beschreibung}" FontSize="14" FontWeight="Bold" />
    </Grid>
</Window>

LinksRechts