Proprietà DataContext

FrameworkElement.DataContext Property

Ottiene o imposta il contesto dati per FrameworkElement quando partecipa all'associazione dati.

Sintassi


public object DataContext { get; set; }


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

XAML Values

binding

Espressione di associazione che può fare riferimento a un contesto dati esistente o proprietà nel contesto dati. Vedere gli argomenti relativi alla guida rapida per l'associazione di dati ai controlli o all'estensione di markup dell'associazione.

keyedObject

Valore x:Key di un oggetto che esiste in una raccolta di Resources in ambito. Si tratta in genere della creazione di un'istanza di un elemento oggetto di un tipo personalizzato definito in un altro punto del codice e richiede un mapping dello spazio dei nomi XAML personalizzato all'interno di ResourceDictionary.

Valore della proprietà

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

Oggetto da utilizzare come contesto dati.

Note

Il contesto dei dati è un concetto in cui gli oggetti possono ereditare informazioni sull'associazione dati da oggetti padre successivi in una gerarchia di relazione tra oggetti.

L'aspetto più importante del contesto dati è costituito dall'origine dati utilizzata per l'associazione dati. Un utilizzo tipico dell'oggetto DataContext consiste nell'impostarlo direttamente su un oggetto origine dati. L'origine dati potrebbe essere un'istanza di una classe come oggetto business. In alternativa è possibile creare un'origine dati come una raccolta osservabile, in modo che il contesto dei dati consenta di rilevare le modifiche nella raccolta di supporto. Se l'origine dati è definita da una raccolta che è anche inclusa nel progetto, l'impostazione di un DataContext viene spesso combinata con la creazione di un'istanza dell'origine dati come risorsa con chiave in un ResourceDictionary e la successiva impostazione del DataContext in XAML con un riferimento StaticResource.

Un'altra tecnica per impostare l'oggetto DataContext consiste nell'aggiungerlo alla radice dell'albero di oggetti di runtime, come parte della logica di inizializzazione dell'app, subito dopo la chiamata al metodo InitializeComponent. Questa tecnica è illustrata nella guida introduttiva all'associazione dati ai controlli.

Oltre a specificare l'origine, un contesto dati può anche archiviare ulteriori caratteristiche di una dichiarazione di associazione, ad esempio un percorso nell'origine dati.

L'impostazione di DataContext è utile per impostare diverse associazioni di proprietà diverse nello stesso oggetto su un contesto dati condivisi. Tuttavia, è valido affinché una proprietà DataContext non sia definita e affinché tutte le qualificazioni dell'associazione necessarie esistano nelle istruzioni separate dell'associazione.

L'implementazione dell'origine dei dati oggetto varia a seconda dei requisiti e del linguaggio di programmazione. Per ulteriori informazioni, vedere Cenni preliminari associazione dati, in particolare la sezione "Associazione alle raccolte".

Uno scenario comune per i contesti dei dati C# e Microsoft Visual Basic consiste nell'utilizzare un oggetto business definito da CLR che supporta la notifica di modifiche. Per un oggetto business, la classe personalizzata utilizzata come contesto dati implementa generalmente INotifyPropertyChanged, in modo che gli aggiornamenti dei dati possono aggiornare un'associazione unidirezionale o bidirezionale. Se l'origine dati è una raccolta di oggetti business, può implementare INotifyCollectionChanged oltre al supporto per gli elenchi (IList<T> o List<T>) oppure derivare da ObservableCollection<T>.

Esempi

In questo esempio viene impostato DataContext direttamente su un'istanza di una classe personalizzata.


// 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;


Requisiti

Client supportato minimo

Windows 8

Server supportato minimo

Windows Server 2012

Spazio dei nomi

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

Metadati

Windows.winmd

Vedere anche

FrameworkElement
Binding
Cenni preliminari sull'associazione dati
ObservableCollection<T>

 

 

Mostra:
© 2016 Microsoft