FrameworkElement.DataContext Property

Ruft bei der Datenbindung den Datenkontext für ein FrameworkElement ab oder legt ihn fest.

Syntax


public object DataContext { get; set; }


<frameworkElement DataContext="binding"/>
- or -
<frameworkElement DataContext="{StaticResource keyedObject}"/>
 

XAML Values

binding

Ein Bindungsausdruck, der auf einen vorhandenen Datenkontext oder eine Eigenschaft im Datenkontext verweisen kann. Weitere Informationen finden Sie unter Schnellstart: Datenbindung an Steuerelemente oder Binding-Markuperweiterung.

keyedObject

Der x:Key-Wert eines Objekts, das in einer Resources-Auflistung im Gültigkeitsbereich vorhanden ist. Normalerweise handelt es sich hierbei um eine Objektelementinstanziierung eines benutzerdefinierten Typs, der an anderer Stelle im Code definiert ist, die eine benutzerdefinierte XML-Namespacezuordnung im ResourceDictionary erfordert.

Eigenschaftswert

Typ: System.Object [.NET] | Platform::Object [C++]

Das als Datenkontext zu verwendende Objekt.

Hinweise

Datenkontext ist ein Konzept, in dem Objekte Datenbindungsinformationen von nachfolgenden übergeordneten Objekten in einer Objektbeziehungshierarchie erben können.

Der wichtigste Aspekt des Datenkontexts ist die Datenquelle, die für die Datenbindung verwendet wird. Eine typische Verwendung von DataContext ist dessen direkte Festlegung auf ein Datenquellenobjekt. Diese Datenquelle kann die Instanz einer Klasse sein, z. B. ein Geschäftsobjekt. Oder Sie erstellen eine Datenquelle als eine sichtbare Auflistung, so dass es der Datenkontext ermöglicht, Änderungen in der zugrunde liegenden Auflistung zu bemerken. Wenn die Datenquelle durch eine auch im Projekt enthaltene Bibliothek definiert ist, wird das Festlegen von einem DataContext häufig mit dem Instanziieren der Datenquelle als Ressource mit Schlüssel in einem ResourceDictionary und dem anschließenden Festlegen vom DataContext in XAML mit einem StaticResource-Verweis kombiniert.

Eine weiteres Verfahren zum Festlegen von DataContext ist, sie direkt nach dem Aufrufen von InitializeComponent dem Stamm der Laufzeitobjektstruktur als Teil der Initialisierungssteuerung für die App hinzuzufügen. Dieses Verfahren wird in Schnellstart: Datenbindung an Steuerelemente gezeigt.

Neben der Quellenangabe kann ein Datenkontext weitere Merkmale einer Bindungsdeklaration speichern, beispielsweise den Pfad zur Datenquelle.

Die Festlegung eines DataContext ist geeignet für mehrere Bindungen unterschiedlicher Eigenschaften desselben Objekts an einen gemeinsamen Datenkontext. Ein DataContext darf jedoch undefiniert sein, und alle notwendigen Bindungsqualifikationen können als separate Bindungsanweisungen vorliegen.

Wie Sie die Objektdatenquelle implementieren, hängt von den Anforderungen und der Programmiersprache ab. Weitere Informationen finden Sie in der Übersicht über Datenbindung, insbesondere im Abschnitt "Binden an Sammlungen".

Ein häufiges Szenario für C#- und Microsoft Visual Basic-Datenkontexte ist die Verwendung eines CLR-definierten Geschäftsobjekts, das Änderungsbenachrichtigungen unterstützt. Für ein Geschäftsobjekt implementiert die benutzerdefinierte Klasse, die als Datenkontext verwendet wird, in der Regel INotifyPropertyChanged, damit Updates der Daten eine unidirektionale oder bidirektionale Bindung aktualisieren können. Wenn die Datenquelle eine Auflistung von Geschäftsobjekten ist, kann sie INotifyCollectionChanged einschließlich Listenunterstützung implementieren (IList<T> oder List<T>), oder von ObservableCollection<T> ableiten.

Beispiele

In diesem Beispiel wird der DataContext direkt für eine Instanz einer benutzerdefinierten Klasse festgelegt.


// Create an instance of the MyColors class 
// that implements INotifyPropertyChanged.
MyColors textcolor = new MyColors();

// Brush1 is set to be a SolidColorBrush with the value Red.
textcolor.Brush1 = new SolidColorBrush(Colors.Red);

// Set the DataContext of the TextBox MyTextBox.
MyTextBox.DataContext = textcolor;


Anforderungen

Mindestens unterstützter Client

Windows 8

Mindestens unterstützter Server

Windows Server 2012

Namespace

Windows.UI.Xaml
Windows::UI::Xaml [C++]

Metadaten

Windows.winmd

Siehe auch

FrameworkElement
Binding
Übersicht über die Datenbindung
ObservableCollection<T>

 

 

Anzeigen:
© 2014 Microsoft