www.planet-xaml.net
 
  • [WPFXAML]

    WPF + ADO.net = Databinding?!

    by Florian Krüsch, June 23, 2007

    Dass Databinding in WPF mächtig und flexibel ist, hat sich mittlerweile herumgesprochen. Das geht soweit, dass manche Architekten am liebsten die gesamte UI über DataBinding steuern würden :)

    Aber taugt Databinding auch für die Navigation in relationalen DataSets? Wie zu sovielen Themen rund um DataBinding Fragen weiss Beatrice Costa Rat: die folgenden beiden Posts beschreiben ziemlich ausführlich, wie man ADO.net DataTables anbinden und synchronisieren kann.

    How do I bind to ADO.net
    Independent dataviews with ADO.net

    Vor allem die Kommentare sind lesenswert, dort steckt einiges an wertvollen Tips.

    Interessant finde ich, dass man über Relationen mit Binding-Expressions in der Form Tabellenname/NamederRelation sehr einfach Master-Detail Szenarien abbilden kann. WPF findet dazu die passende DataView für die Child-Tabelle.

    Beispielanwendung

    Hier eine kleine Beispielanwendung, die ein einfaches DataSet als Objektmodell benutzt:

    Beispielanwendung

    Der Trick ist, dass man nun den Namen der Relation einfach in seinen Binding-Expressions benutzen kann.

    Hinter den Kulissen stellt WPF eine eigene Form von CollectionView zur Verfügung (BindingListCollectionView), die speziell an DataViews angepasst ist. Setzt man z.B. die SortDescription auf einer BindingListCollectionView, wird dadurch die "Sort" Property in der DataView gesetzt.

    Die Auswahl der DetailsView-Items ist in meinem Beispiel über "IsSynchronizedWithCurrentItem=True" direkt mit der Selektion in der jeweiligen ListBox verknüpft. Das muss natürlich nicht so sein, es ist genauso möglich das CurrentItem in der CollectionView manuell zu setzen, dafür bietet sich ein Command an.

    CollectionViews und Commands sind Themen für weitere Posts :)

    Happy coding,
    Florian

    no comments
  •  ^
 

Language | Sprache

All[e]  |  english  |  deutsch
Tags
 

Profile

Florian Kruesch

I am working as a freelance software architect, developer and consultant in Düsseldorf, Germany.

My focus is on Microsoft technologies and .NET 3.0, especially WPF, ASP.net and SQL Server.

I've been a lead programmer on the WPF development of the OTTO Vista Store at SinnerSchrader Studios.

My client list includes DHL, LG and Ogilvy Interactive.