Partilhar via


MarkupExtension do RelativeSource

Especifica propriedades de uma fonte de associação RelativeSource, para serem usadas em um Ligação de marcação de extensão, ou quando configurando a propriedade RelativeSource de um elemento Binding estabelecido em XAML.

Uso de atributos XAML

<Binding RelativeSource="{RelativeSource modeEnumValue}" .../>

Usado de Atributo XAML (aninhado em uma extensão Binding)

<object property="{Binding RelativeSource={RelativeSource modeEnumValue} ...}" .../>

Uso do elemento Object em XAML

<Binding>
  <Binding.RelativeSource>
    <RelativeSource Mode="modeEnumValue"/>
  </Binding.RelativeSource>
</Binding>
- or 
<Binding>
  <Binding.RelativeSource>
    <RelativeSource
      Mode="FindAncestor"
      AncestorType="{x:Type typeName}"
      AncestorLevel="intLevel"
    />
  </Binding.RelativeSource>
</Binding>

Valores de XAML

modeEnumValue

Um dos seguintes:

  • O token de string Self; corresponde a um RelativeSource como criado pela propriedade Mode definida como Self.

  • O token de string TemplatedParent; corresponde a um RelativeSource como criado pela propriedade Mode definida como TemplatedParent.

  • O token de string PreviousData; corresponde a um RelativeSource como criado pela propriedade Mode definida como PreviousData.

  • Veja abaixo para informações sobre o modo FindAncestor.

FindAncestor

O token de string FindAncestor. Usando este token entra-se em um modo, enquanto um RelativeSource especifica um tipo de ancestral e opcionalmente um nível de ancestral. Isto corresponde a um RelativeSource como criado por sua propriedade Mode definida como FindAncestor .

typeName

Necessário para o modo FindAncestor. O nome de um tipo, que preenche a propriedade AncestorType.

intLevel

Opcional para o modo FindAncestor. Um nível de ancestral (avaliado de acordo com a direção do pai na árvore lógica).

Comentários

Na sintaxe de elemento de objeto para FindAncestor modo mostrado acima, a sintaxe de elemento segunda objeto usada especificamente para FindAncestor modo. FindAncestor modo requer um AncestorType valor. Você deve definir AncestorType como um atributo usando a referência Marcação de Extensão x:Type para o tipo de ancestral a ser procurado. O valor AncestorType é usado quando a requisição de associação é processada em tempo de execução.

Para o modo FindAncestor, a propriedade opcional AncestorLevel pode ajudar a desambiguar a consulta de ancestral em casos onde existe possivelmente mais de um ancestral daquele tipo na árvore de elemento.

Para mais detalhes sobre o modo FindAncestor, consulte RelativeSource.

Descrever o conceito de associação de dados não é abordado aqui, consulte Revisão de Associação de Dados.

Na implementação de processador XAML WPF, o tratamento para esta extensão de marcação é definida pela classe RelativeSource.

RelativeSource é uma extensão de marcação. Extensões de marcação são tipicamente implementadas quando existe um requisito de escapar valores de atributo para serem diferentes de valores literais ou nomes de manipuladores, e o requisito é mais global do que simplesmente colocar conversores de tipo em certos tipos ou propriedades. Todas as extensões de marcação no XAML usam os caracteres { e } em sua sintaxe de atributo, que é a convenção pela qual o processador XAML reconhece que uma extensão de markup precisa processar o atributo. Para obter mais informações, consulte Extensão de Marcação e XAML.

Consulte também

Conceitos

Styling and Templating

XAML Overview

Extensão de Marcação e XAML

Revisão de Associação de Dados

Resumo de Declaração de Associações

Referência

Binding

Marcação de Extensão x:Type