Galileo Computing < openbook > Galileo Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
Vorwort zur 5. Auflage
1 Allgemeine Einführung in .NET
2 Grundlagen der Sprache C#
3 Klassendesign
4 Vererbung, Polymorphie und Interfaces
5 Delegates und Ereignisse
6 Weitere .NET-Datentypen
7 Weitere Möglichkeiten von C#
8 Auflistungsklassen (Collections)
9 Fehlerbehandlung und Debugging
10 LINQ to Objects
11 Multithreading und die Task Parallel Library (TPL)
12 Arbeiten mit Dateien und Streams
13 Binäre Serialisierung
14 Einige wichtige .NET-Klassen
15 Projektmanagement und Visual Studio 2010
16 XML
17 WPF – Die Grundlagen
18 WPF-Containerelemente
19 WPF-Steuerelemente
20 Konzepte der WPF
21 Datenbindung
22 2D-Grafik
23 ADO.NET – verbindungsorientierte Objekte
24 ADO.NET – Das Command-Objekt
25 ADO.NET – Der SqlDataAdapter
26 ADO.NET – Daten im lokalen Speicher
27 ADO.NET – Aktualisieren der Datenbank
28 Stark typisierte DataSets
29 LINQ to SQL
30 Weitergabe von Anwendungen
Stichwort

Buch bestellen
Ihre Meinung?

Spacer
<< zurück
Visual C# 2010 von Andreas Kühnel
Das umfassende Handbuch
Buch: Visual C# 2010

Visual C# 2010
geb., mit DVD
1295 S., 49,90 Euro
Rheinwerk Computing
ISBN 978-3-8362-1552-7
Pfeil 21 Datenbindung
Pfeil 21.1 Wichtige Klassen
Pfeil 21.1.1 Die Klasse »Binding«
Pfeil 21.1.2 Die Klasse »DataContext«
Pfeil 21.2 Einfache Datenbindung
Pfeil 21.2.1 Bindung mit Code erzeugen
Pfeil 21.2.2 Bindungsrichtung
Pfeil 21.2.3 Änderung der Datenquelle
Pfeil 21.2.4 Weitere Möglichkeiten im Zusammenhang mit der Datenbindung
Pfeil 21.2.5 Die Ereignisse »SourceUpdated« und »TargetUpdated«
Pfeil 21.3 Verschiedene Datenbindungsquellen
Pfeil 21.3.1 Bindung an einfache Objekte
Pfeil 21.3.2 Auflistungen binden
Pfeil 21.4 DataTemplates festlegen
Pfeil 21.4.1 Trigger
Pfeil 21.5 Daten konvertieren
Pfeil 21.5.1 Beispielprogramm
Pfeil 21.5.2 Mehrfachbindungen und »Converter«-Klassen
Pfeil 21.6 Die Klasse »ObjectDataProvider«
Pfeil 21.7 WPF und ADO.NET
Pfeil 21.7.1 Ausgabe in einer ListBox
Pfeil 21.7.2 Eine Tabelle im DataGrid-Steuerelement
Pfeil 21.7.3 WPF und LINQ to SQL


Galileo Computing - Zum Seitenanfang

21.6 Die Klasse »ObjectDataProvider« topZur vorigen Überschrift

Fassen wir an dieser Stelle kurz zusammen, wie wir Objekte im Resource-Abschnitt eines Elements definieren:


<Window.Resources>
  <local:Person x:Key="pers" Name="Meier" />
</Window.Resources>

Sie geben die Klasse unter Voranstellung des Namespace an und geben dem Objekt sofort Daten mit auf den Lebensweg. Diese Form der Instanziierung verwendet den parameterlosen Konstruktor.

Die Klasse ObjectDataProvider gestattet es ebenfalls, Objekte im XAML-Code zu erstellen. Aber die Möglichkeiten dieser Klasse gehen über die angesprochene Instanziierung hinaus, denn mit dieser Klasse können Sie auch Parameter an den Konstruktor übergeben und sogar Methoden des Objekts aufrufen.

Die Klasse, an der wir ObjectDataProvider testen wollen, soll wieder Person sein. Sie ist mit der Methode DoSomething ausgestattet, die im Grunde genommen nichts mit einer Person zu tun hat. Aber für unsere Testzwecke …


class Person {
  public string Name {get;set;}
  public Person() { }
  public Person(string name) {
    Name = name;
  }
  public string DoSomething(int value){
    return Math.Pow(value, 2).ToString();
  }
}

Im weiteren Verlauf des Beispiels werden wir zwei Namespaces benutzen, die wir zuerst bekannt geben:


xmlns:local="clr-namespace:ObjectDataProviderSample"
xmlns:sys="clr-namespace:System;assembly=mscorlib"

Widmen wir uns zunächst dem ObjectDataProvider, mit dem wir den parametrisierten Konstruktor von Person aufrufen:


<ObjectDataProvider x:Key="pers1" ObjectType="{x:Type local:Person}">
  <ObjectDataProvider.ConstructorParameters>
    <sys:String>Conie Serna</sys:String>
  </ObjectDataProvider.ConstructorParameters>
</ObjectDataProvider>

Dem ObjectDateProvider-Objekt teilen wir mit der Eigenschaft ObjectType mit, von welchem Typ das von uns angeforderte Objekt ist. Über die Eigenschaft ConstructorParameters übergeben wir dem parametrisierten Konstruktor das erforderliche Argument. Eingefasst wird das Übergabeargument in ein Element, das den Datentyp beschreibt.

Um uns vom Erfolg des Konstruktoraufrufs zu überzeugen, reicht ein einfaches TextBlock-Element:


<TextBlock Text="{Binding Source={StaticResource pers1}, Path=Name}" />

Sehr ähnlich, wie wir einen parametrisierten Konstruktor ansprechen, rufen wir auch eine Methode auf. Hierzu stellt uns das ObjectDataProvider-Objekt mit MethodName eine Eigenschaft zur Verfügung, der wir die aufzurufende Methode übergeben. Definiert die aufzurufende Methode darüber hinaus auch noch Parameter, werden diese der Eigenschaft MethodParameters bekannt gegeben.


<ObjectDataProvider x:Key="pers2" 
                    ObjectType="{x:Type local:Person}" 
                    MethodName="DoSomething">
  <ObjectDataProvider.MethodParameters>
    <sys:Int32>12</sys:Int32>
  </ObjectDataProvider.MethodParameters>
</ObjectDataProvider>  

Der XAML-Code zum Testen des Methodenaufrufs bedarf keiner weiteren Erläuterung.


<TextBlock Text="{Binding Source={StaticResource pers2}}" />


Hinweis

Sie finden das komplette Beispiel auf der Buch-DVD unter Beispiele\Kapitel 21\ObjectDataProvider.




Ihr Kommentar

Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen. >> Zum Feedback-Formular
<< zurück
  Zum Katalog
Zum Katalog: Visual C# 2010

Visual C# 2010
Jetzt bestellen


 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchempfehlungen
Zum Katalog: Professionell entwickeln mit Visual C# 2012






 Professionell
 entwickeln mit
 Visual C# 2012


Zum Katalog: Windows Presentation Foundation






 Windows Presentation
 Foundation


Zum Katalog: Schrödinger programmiert C++






 Schrödinger
 programmiert C++


Zum Katalog: C++ Handbuch






 C++ Handbuch


Zum Katalog: C/C++






 C/C++


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo




Copyright © Rheinwerk Verlag GmbH 2010
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


Nutzungsbestimmungen | Datenschutz | Impressum

Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de

Cookie-Einstellungen ändern