Der ObjectDataProvider
Die Anwendungsgebiete dieser Klasse unter WPF sind recht vielseitig, ZB. kann mithilfe dieser Klasse, ein Objekt Instanziiert werden, natürlich kann man in WPF auch einzelne Objekte auf andere Art und weise, über Ihren Default mäßig Parameterlosen Constructor erstellen, jedoch funktioniert die Instanziierung des jeweiligen Objektes nicht, sobald die jeweilige Klassen keine Parameterlosen Constuctor bereitstellt. Da es im XAML Code keine direkte Möglichkeit gibt, der Klasse eine Parameter zu übergeben kommt genau an dieser stelle, nun der ObjectDataProvider aus dem Namespace System.Windows.Data ins Spiel.
<ObjectDataProvider x:Key="CustomerDataSource" ObjectType="{x:Type data:Customer}">
<ObjectDataProvider.ConstructorParameters>
<system:String>Lars</system:String>
<system:String>Schmitt</system:String>
</ObjectDataProvider.ConstructorParameters>
</ObjectDataProvider>
Dank dieses einfachen XAML Codes können wir nun, das Objekt vom Typ Customer mit zwei Parametern unter XAML erstellen und auch als Bindungs Datenquelle verwenden.
Eine weitere Funktion wäre, dass mit dessen Hilfe auch auf Methoden eines einzelnen Objektes zugegriffen werden, um ZB. deren Rückgabe als Datenquelle zu verwenden.
Wie es ZB. bei dieser Implantation geschieht:
<ObjectDataProvider MethodName="GetValues" ObjectType="{x:Type sys:Enum}" x:Key="SampleData">
<ObjectDataProvider.MethodParameters>
<x:Type TypeName="local:TestEnum" />
</ObjectDataProvider.MethodParameters>
</ObjectDataProvider>
Den meistens, wird es schon aufgefallen sein, was dieser ausschnitt macht, richtig dieser XAML ausschnitt ermöglicht es unter XAML, die einzelnen Konstanten einer Enumeration innerhalb eines Arrays auszulesen und diese als Datenquelle, ZB, für eine Selelektion in einer ComboBox bereitzustellen.