FrameworkElement.DataContext Propriedade
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Obtém ou define o contexto de dados de um elemento quando ele participa da vinculação de dados.
public:
property System::Object ^ DataContext { System::Object ^ get(); void set(System::Object ^ value); };
[System.Windows.Localizability(System.Windows.LocalizationCategory.NeverLocalize)]
public object DataContext { get; set; }
[<System.Windows.Localizability(System.Windows.LocalizationCategory.NeverLocalize)>]
member this.DataContext : obj with get, set
Public Property DataContext As Object
Valor da propriedade
O objeto a ser usado como contexto de dados.
- Atributos
Exemplos
O exemplo a seguir ilustra como um contexto de dados atua em uma associação e fornece as informações que definem os valores específicos das propriedades associadas.
<Window.Resources>
<src:LeagueList x:Key="MyList" />
</Window.Resources>
<DockPanel DataContext="{Binding Source={StaticResource MyList}}">
Comentários
O contexto de dados é um conceito que permite que os elementos herdem informações de seus elementos pai sobre a fonte de dados que é usada para associação, bem como outras características da associação, como o caminho.
O contexto de dados pode ser definido diretamente para um objeto .NET, com as associações avaliando as propriedades desse objeto. Como alternativa, você pode definir o contexto de dados como um DataSourceProvider objeto.
Essa propriedade de dependência herda valores de propriedade. Se houver elementos filho sem outros valores para DataContext estabelecidos por meio de valores ou estilos locais, o sistema de propriedades definirá o valor como o DataContext valor do elemento pai mais próximo com esse valor atribuído.
Como alternativa, você pode usar uma das seguintes propriedades da Binding classe para especificar explicitamente a fonte de associação:
- <xref:System.Windows.Data.Binding.ElementName%2A>.
- <xref:System.Windows.Data.Binding.Source%2A>.
- <xref:System.Windows.Data.Binding.RelativeSource%2A>.
Para obter mais informações, consulte Como especificar a origem da associação.
No XAML, DataContext geralmente é definido como uma Binding declaração. Você pode usar a sintaxe de elemento de propriedade ou a sintaxe de atributo. A sintaxe de atributo é mostrada no exemplo nesta página. Você também pode usar o código para definir DataContext.
DataContext é uma propriedade associável para facilitar cenários em que um contexto pode estar associado a outro. No entanto, se você associar, DataContexttenha cuidado para não criar referências de associação circular (não associe a DataContext si mesmo, o que é possível fazer devido à natureza da herança do valor da DataContext propriedade).
Uso do elemento propriedade XAML
<object>
<object.DataContext>
<dataContextObject />
</object.DataContext>
</object>
Uso do Atributo XAML
<object DataContext="bindingUsage"/>
- ou -
<object DataContext="{resourceExtension contextResourceKey}"/>
Valores XAML
dataContextObject
Um objeto diretamente inserido que serve como contexto de dados para quaisquer associações dentro do elemento pai. Normalmente, esse objeto é uma Binding ou outra BindingBase classe derivada. Como alternativa, os dados brutos de qualquer tipo de objeto destinado à associação podem ser colocados aqui, com as associações reais definidas posteriormente.
bindingUsage
Um uso de associação que é avaliado para um contexto de dados apropriado. Para ver os detalhes, consulte Extensão de marcação Binding.
resourceExtension
Um dos seguintes: StaticResource
ou DynamicResource
. Esse uso é usado ao fazer referência a dados brutos definidos como um objeto em recursos. Consulte recursos XAML.
contextResourceKey
O identificador de chave para o objeto que está sendo solicitado de dentro de um ResourceDictionary.
Informações da propriedade de dependência
Campo Identificador | DataContextProperty |
Propriedades de metadados definidas como true |
Inherits |