Archiv

Artikel Tagged ‘DataBinding’

Daily-Hour 40: Grundlagen der Datenbindung Teil 1

26. März 2010 juergen79 Keine Kommentare

Bevor man überhaupt verwendet, sollte man sich der “statischen” Darstellung der Daten bewusst sein. Deshalb kommt erstmal eine kurze Einführung in die Darstellung von Daten ohne Datenbindung. Hierbei werden die Daten einmal eingelesen und ausgegeben. Auch hier fließt zumindest Daten vom Objekt zur Oberfläche und von der Oberfläche auch wieder zurück. Wenn man keine Datenbindung verwendet, muss man auf Push und Pull ausweichen.

Hierfür betrachten man die einzelnen Datenobjekte der Instanz von der Klasse Person:

public class Person
{
    public string ID { get; }
    public string ReisepassNr {set; get; }
    public string Vorname { set; get; }
    public string Name { set; get; }
    public string DateTime { set; get; }
}

Bei der Speicherung einer Person in einer Datenbank erfolgt mit einem Primärschlüssel, der von der Datenbank automatisch beim Anlegen der Person erzeugt wird. Der Primärschlüssel ist nach der Erzeugung auch nicht mehr veränderbar, deshalb ist ID auch schreibgeschützt.

Die Oberfläche erlaubt das Anzeigen der Eigenschaften (und ändern der veränderlichen Eigenschaften). Für die unveränderlichen Daten verwenden wir zur Darstellung TextBlock und für die veränderlichen TextBox. Da die Elemente auch ansprechen muss, muss man ihnen auch einen Namen zu weisen.

<TextBlock x:Name=”tbID” Text=”ID”/>
<TextBox x:Name=”txVorname” Margin=”2″/>
<TextBox x:Name=”txName” Margin=”2″/>
<TextBox x:Name=”txDate” Margin=”2″/>

Aktionen, die durchgeführt werden sollten:

  • Lesen
  • Speichern
  • Neuanlegen von Daten

Alle Vorgänge werden nur innerhalb des Objektes simuliert und dafür kann man sich 3 Button im XAML-Code anlegen.

Pull-/Push-Beziehung zwischen Objekte und Benutzeroberfläche 
Das Realisieren der Pull-/Push-Beziehung ist realtiv simple. Ein Objekt erhält Daten und ein Eventhandler übergibt Änderungen an das Objekt (oder mehrere). Einen guten Kandiaten für einen Ereignisauslöser findet man in der TextBox (sowie auch in anderen Steuerelementen). Typische Ereignisse auf die man zurückgreifen kann, sind Änderungen des Textes (TextChanged) oder Verlust des Focus (LostFocus). Eine weitere Möglichkeit ist es, den Anwender bestimmen zu lassen, wann das “Ereignis” ausgelöst wird, durch das Drücken einer Schaltfläche.

Den Event-Handler kann man entweder im Code-beside oder im XAML-Code setzen. In der Klasse Person werden wir den Code für das Laden und Speichern von Daten simulieren:

public static Person GetPerson()
{
   return new Person()
   {
        id = 1, Vorname=”Anna”, Name=”Bolika”, Geburtsdatum=new DateTime(1982, 3, 23)
   }
  
}
public void Save()
{
}

Weiters schreiben wir den Code für das laden und anzeigen von Daten:

private void OnLoadClick(object sender, RoutedEventArgs e)
{
    Person p = Person.GetPerson();
    tbID.Text = p.ID.ToString();
    txVorname.Text = p.Vorname;
    txName.Text = p.Name;
    txDate.Text = p.Date.ToShortDateString();
}
private void OnSaveClick(object sender, RoutedEventArgs e)
{
    Person p = new Person();
    p.Vorname  = txVorname.Text;
    p.Name = tx.Name.Text;
    if (txDate.SelectedDate != null))
    {
               p.Date  = (DateTime)txDate.Selected
    } 
}

Cheat Sheet

4. Februar 2009 juergen79 Keine Kommentare

Im Blog von Lester gibt es einen Hinweis auf ein DataBinding Cheat Sheet. Ich habe mir die 3 Seiten mal kurz überflogen und ich finde es sieht sehr hilfreich aus.

Es ist als PDF erhältlich.

Überblick Data-Binding

24. November 2008 juergen79 Keine Kommentare

In der Show vom SparklingClient war Jesse Liberty wieder zu Gast, wo über das Thema “Data Binding in Silverlight” berichtete.

Nützliche Links zu dem Thema: